8270949: Make dynamically generated classes with the class file version of the current release

Reviewed-by: alanb
This commit is contained in:
Mandy Chung 2021-07-21 18:09:38 +00:00
parent b7245c6164
commit ddce47cd3c
8 changed files with 20 additions and 7 deletions

View file

@ -39,6 +39,7 @@ import java.util.TreeSet;
import java.util.stream.Stream;
import static java.lang.invoke.LambdaForm.BasicType.*;
import static java.lang.invoke.MethodHandleStatics.CLASSFILE_VERSION;
import static java.lang.invoke.MethodTypeForm.*;
import static java.lang.invoke.LambdaForm.Kind.*;
@ -504,7 +505,7 @@ class GenerateJLIClassesHelper {
*/
private static byte[] generateCodeBytesForLFs(String className, String[] names, LambdaForm[] forms) {
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS + ClassWriter.COMPUTE_FRAMES);
cw.visit(Opcodes.V1_8, Opcodes.ACC_PRIVATE + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER,
cw.visit(CLASSFILE_VERSION, Opcodes.ACC_PRIVATE + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER,
className, null, InvokerBytecodeGenerator.INVOKER_SUPER_NAME, null);
cw.visitSource(className.substring(className.lastIndexOf('/') + 1), null);