class java.lang.invoke.InvokerBytecodeGenerator
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.lang.invoke.InvokerBytecodeGenerator
super_class: java.lang.Object
{
private static final java.lang.String MH;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/MethodHandle"
private static final java.lang.String MHI;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/MethodHandleImpl"
private static final java.lang.String LF;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/LambdaForm"
private static final java.lang.String LFN;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/LambdaForm$Name"
private static final java.lang.String CLS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/Class"
private static final java.lang.String OBJ;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/Object"
private static final java.lang.String OBJARY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "[Ljava/lang/Object;"
private static final java.lang.String MH_SIG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Ljava/lang/invoke/MethodHandle;"
private static final java.lang.String LF_SIG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Ljava/lang/invoke/LambdaForm;"
private static final java.lang.String LFN_SIG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Ljava/lang/invoke/LambdaForm$Name;"
private static final java.lang.String LL_SIG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "(Ljava/lang/Object;)Ljava/lang/Object;"
private static final java.lang.String LLV_SIG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "(Ljava/lang/Object;Ljava/lang/Object;)V"
private static final java.lang.String CLL_SIG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;"
private static final java.lang.String superName;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/Object"
private final java.lang.String className;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String sourceFile;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.LambdaForm lambdaForm;
descriptor: Ljava/lang/invoke/LambdaForm;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String invokerName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodType invokerType;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] localsMap;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.LambdaForm$BasicType[] localTypes;
descriptor: [Ljava/lang/invoke/LambdaForm$BasicType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Class<?>[] localClasses;
descriptor: [Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Ljava/lang/Class<*>;
private jdk.internal.org.objectweb.asm.ClassWriter cw;
descriptor: Ljdk/internal/org/objectweb/asm/ClassWriter;
flags: (0x0002) ACC_PRIVATE
private jdk.internal.org.objectweb.asm.MethodVisitor mv;
descriptor: Ljdk/internal/org/objectweb/asm/MethodVisitor;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.invoke.MemberName$Factory MEMBERNAME_FACTORY;
descriptor: Ljava/lang/invoke/MemberName$Factory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Class<?> HOST_CLASS;
descriptor: Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private static final java.util.HashMap<java.lang.String, java.lang.Integer> DUMP_CLASS_FILES_COUNTERS;
descriptor: Ljava/util/HashMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;
private static final java.io.File DUMP_CLASS_FILES_DIR;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
java.util.Map<java.lang.Object, java.lang.invoke.InvokerBytecodeGenerator$CpPatch> cpPatches;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/lang/invoke/InvokerBytecodeGenerator$CpPatch;>;
int cph;
descriptor: I
flags: (0x0000)
private static java.lang.Class<?>[] STATICALLY_INVOCABLE_PACKAGES;
descriptor: [Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: [Ljava/lang/Class<*>;
private static volatile int[] $SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$sun$invoke$util$Wrapper;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$Intrinsic;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: ldc Ljava/lang/invoke/InvokerBytecodeGenerator;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
3: invokestatic java.lang.invoke.MemberName.getFactory:()Ljava/lang/invoke/MemberName$Factory;
putstatic java.lang.invoke.InvokerBytecodeGenerator.MEMBERNAME_FACTORY:Ljava/lang/invoke/MemberName$Factory;
4: ldc Ljava/lang/invoke/LambdaForm;
putstatic java.lang.invoke.InvokerBytecodeGenerator.HOST_CLASS:Ljava/lang/Class;
5: getstatic java.lang.invoke.MethodHandleStatics.DUMP_CLASS_FILES:Z
ifeq 15
6: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_COUNTERS:Ljava/util/HashMap;
7: new java.io.File
dup
ldc "DUMP_CLASS_FILES"
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 0
start local 0 8: aload 0
invokevirtual java.io.File.exists:()Z
ifne 10
9: aload 0
invokevirtual java.io.File.mkdirs:()Z
pop
10: StackMap locals: java.io.File
StackMap stack:
aload 0
putstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_DIR:Ljava/io/File;
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Dumping class files to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_DIR:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "/..."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 0 12: goto 17
StackMap locals:
StackMap stack: java.lang.Exception
13: astore 0
start local 0 14: aload 0
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Throwable;)Ljava/lang/InternalError;
athrow
end local 0 15: StackMap locals:
StackMap stack:
aconst_null
putstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_COUNTERS:Ljava/util/HashMap;
16: aconst_null
putstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_DIR:Ljava/io/File;
17: StackMap locals:
StackMap stack:
iconst_3
anewarray java.lang.Class
dup
iconst_0
18: ldc Ljava/lang/Object;
aastore
dup
iconst_1
19: ldc Ljava/util/Arrays;
aastore
dup
iconst_2
20: ldc Lsun/misc/Unsafe;
aastore
21: putstatic java.lang.invoke.InvokerBytecodeGenerator.STATICALLY_INVOCABLE_PACKAGES:[Ljava/lang/Class;
22: return
LocalVariableTable:
Start End Slot Name Signature
8 12 0 dumpDir Ljava/io/File;
14 15 0 e Ljava/lang/Exception;
Exception table:
from to target type
7 12 13 Class java.lang.Exception
private void <init>(java.lang.invoke.LambdaForm, int, java.lang.String, java.lang.String, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/LambdaForm;ILjava/lang/String;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield java.lang.invoke.InvokerBytecodeGenerator.cpPatches:Ljava/util/Map;
2: aload 0
iconst_0
putfield java.lang.invoke.InvokerBytecodeGenerator.cph:I
3: aload 4
ldc "."
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 7
4: aload 4
ldc "."
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 6
start local 6 5: aload 4
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
6: aload 4
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
end local 6 7: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.invoke.LambdaForm int java.lang.String java.lang.String java.lang.invoke.MethodType
StackMap stack:
getstatic java.lang.invoke.MethodHandleStatics.DUMP_CLASS_FILES:Z
ifeq 9
8: aload 3
invokestatic java.lang.invoke.InvokerBytecodeGenerator.makeDumpableClassName:(Ljava/lang/String;)Ljava/lang/String;
astore 3
9: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "java/lang/invoke/LambdaForm$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield java.lang.invoke.InvokerBytecodeGenerator.className:Ljava/lang/String;
10: aload 0
new java.lang.StringBuilder
dup
ldc "LambdaForm$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield java.lang.invoke.InvokerBytecodeGenerator.sourceFile:Ljava/lang/String;
11: aload 0
aload 1
putfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
12: aload 0
aload 4
putfield java.lang.invoke.InvokerBytecodeGenerator.invokerName:Ljava/lang/String;
13: aload 0
aload 5
putfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
14: aload 0
iload 2
iconst_1
iadd
newarray 10
putfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
15: aload 0
iload 2
iconst_1
iadd
anewarray java.lang.invoke.LambdaForm$BasicType
putfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
16: aload 0
iload 2
iconst_1
iadd
anewarray java.lang.Class
putfield java.lang.invoke.InvokerBytecodeGenerator.localClasses:[Ljava/lang/Class;
17: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 18 1 lambdaForm Ljava/lang/invoke/LambdaForm;
0 18 2 localsMapSize I
0 18 3 className Ljava/lang/String;
0 18 4 invokerName Ljava/lang/String;
0 18 5 invokerType Ljava/lang/invoke/MethodType;
5 7 6 p I
MethodParameters:
Name Flags
lambdaForm
localsMapSize
className
invokerName
invokerType
private void <init>(java.lang.String, java.lang.String, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
aload 3
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
1: aload 1
aload 2
aload 3
invokespecial java.lang.invoke.InvokerBytecodeGenerator.<init>:(Ljava/lang/invoke/LambdaForm;ILjava/lang/String;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
arraylength
iconst_1
isub
getstatic java.lang.invoke.LambdaForm$BasicType.V_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
aastore
3: iconst_0
istore 4
start local 4 4: goto 9
5: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.String java.lang.String java.lang.invoke.MethodType int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 4
aload 3
invokevirtual java.lang.invoke.MethodType.parameterSlotCount:()I
aload 3
iload 4
invokevirtual java.lang.invoke.MethodType.parameterSlotDepth:(I)I
isub
iastore
6: iload 4
aload 3
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmpge 8
7: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
iload 4
aload 3
iload 4
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
aastore
8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
arraylength
if_icmplt 5
end local 4 10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 11 1 className Ljava/lang/String;
0 11 2 invokerName Ljava/lang/String;
0 11 3 invokerType Ljava/lang/invoke/MethodType;
4 10 4 i I
MethodParameters:
Name Flags
className
invokerName
invokerType
private void <init>(java.lang.String, java.lang.invoke.LambdaForm, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/String;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodType;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 2
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
arraylength
1: aload 1
aload 2
getfield java.lang.invoke.LambdaForm.debugName:Ljava/lang/String;
aload 3
invokespecial java.lang.invoke.InvokerBytecodeGenerator.<init>:(Ljava/lang/invoke/LambdaForm;ILjava/lang/String;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
2: aload 2
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 12
6: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.String java.lang.invoke.LambdaForm java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] int int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 5
iload 6
iastore
7: iload 5
aload 4
arraylength
if_icmpge 11
8: aload 4
iload 5
aaload
invokevirtual java.lang.invoke.LambdaForm$Name.type:()Ljava/lang/invoke/LambdaForm$BasicType;
astore 7
start local 7 9: iload 6
aload 7
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeSlots:()I
iadd
istore 6
10: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
iload 5
aload 7
aastore
end local 7 11: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
arraylength
if_icmplt 6
end local 6 end local 5 13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 14 1 className Ljava/lang/String;
0 14 2 form Ljava/lang/invoke/LambdaForm;
0 14 3 invokerType Ljava/lang/invoke/MethodType;
3 14 4 names [Ljava/lang/invoke/LambdaForm$Name;
4 13 5 i I
5 13 6 index I
9 11 7 type Ljava/lang/invoke/LambdaForm$BasicType;
MethodParameters:
Name Flags
className
form
invokerType
static void maybeDump(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.lang.invoke.MethodHandleStatics.DUMP_CLASS_FILES:Z
ifeq 3
1: new java.lang.invoke.InvokerBytecodeGenerator$1
dup
aload 0
aload 1
invokespecial java.lang.invoke.InvokerBytecodeGenerator$1.<init>:(Ljava/lang/String;[B)V
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 className Ljava/lang/String;
0 4 1 classFile [B
MethodParameters:
Name Flags
className final
classFile final
private static java.lang.String makeDumpableClassName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_COUNTERS:Ljava/util/HashMap;
dup
astore 2
monitorenter
1: getstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_COUNTERS:Ljava/util/HashMap;
aload 0
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 1
start local 1 2: aload 1
ifnonnull 3
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 1
3: StackMap locals: java.lang.Integer java.util.HashMap
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.DUMP_CLASS_FILES_COUNTERS:Ljava/util/HashMap;
aload 0
aload 1
invokevirtual java.lang.Integer.intValue:()I
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
monitorexit
5: goto 8
end local 1 StackMap locals: java.lang.String top java.util.HashMap
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
start local 1 8: StackMap locals: java.lang.String java.lang.Integer
StackMap stack:
aload 1
invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
astore 2
start local 2 9: goto 11
10: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "0"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
11: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.String.length:()I
iconst_3
if_icmplt 10
12: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0
13: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 className Ljava/lang/String;
2 6 1 ctr Ljava/lang/Integer;
8 14 1 ctr Ljava/lang/Integer;
9 14 2 sfx Ljava/lang/String;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
className
java.lang.String constantPlaceholder(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=8, locals=4, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "CONSTANT_PLACEHOLDER_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
dup
getfield java.lang.invoke.InvokerBytecodeGenerator.cph:I
dup_x1
iconst_1
iadd
putfield java.lang.invoke.InvokerBytecodeGenerator.cph:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: getstatic java.lang.invoke.MethodHandleStatics.DUMP_CLASS_FILES:Z
ifeq 2
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " <<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokestatic java.lang.invoke.InvokerBytecodeGenerator.debugString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ">>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
2: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cpPatches:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 4
3: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "observed CP placeholder twice: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
aload 2
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.newConst:(Ljava/lang/Object;)I
istore 3
start local 3 5: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cpPatches:Ljava/util/Map;
aload 2
new java.lang.invoke.InvokerBytecodeGenerator$CpPatch
dup
aload 0
iload 3
aload 2
aload 1
invokespecial java.lang.invoke.InvokerBytecodeGenerator$CpPatch.<init>:(Ljava/lang/invoke/InvokerBytecodeGenerator;ILjava/lang/String;Ljava/lang/Object;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 7 1 arg Ljava/lang/Object;
1 7 2 cpPlaceholder Ljava/lang/String;
5 7 3 index I
MethodParameters:
Name Flags
arg
java.lang.Object[] cpPatches(byte[]);
descriptor: ([B)[Ljava/lang/Object;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.lang.invoke.InvokerBytecodeGenerator.getConstantPoolSize:([B)I
istore 2
start local 2 1: iload 2
anewarray java.lang.Object
astore 3
start local 3 2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cpPatches:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: java.lang.invoke.InvokerBytecodeGenerator byte[] int java.lang.Object[] top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.invoke.InvokerBytecodeGenerator$CpPatch
astore 4
start local 4 4: aload 4
getfield java.lang.invoke.InvokerBytecodeGenerator$CpPatch.index:I
iload 2
if_icmplt 6
5: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "in cpool["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
bipush 20
invokestatic java.util.Arrays.copyOf:([BI)[B
invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator byte[] int java.lang.Object[] java.lang.invoke.InvokerBytecodeGenerator$CpPatch java.util.Iterator
StackMap stack:
aload 3
aload 4
getfield java.lang.invoke.InvokerBytecodeGenerator$CpPatch.index:I
aload 4
getfield java.lang.invoke.InvokerBytecodeGenerator$CpPatch.value:Ljava/lang/Object;
aastore
end local 4 7: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator byte[] int java.lang.Object[] top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 9 1 classFile [B
1 9 2 size I
2 9 3 res [Ljava/lang/Object;
4 7 4 p Ljava/lang/invoke/InvokerBytecodeGenerator$CpPatch;
MethodParameters:
Name Flags
classFile
private static java.lang.String debugString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
instanceof java.lang.invoke.MethodHandle
ifeq 6
1: aload 0
checkcast java.lang.invoke.MethodHandle
astore 1
start local 1 2: aload 1
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 2
invokevirtual java.lang.invoke.MemberName.toString:()Ljava/lang/String;
areturn
5: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MemberName
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandle.debugString:()Ljava/lang/String;
areturn
end local 2 end local 1 6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 arg Ljava/lang/Object;
2 6 1 mh Ljava/lang/invoke/MethodHandle;
3 6 2 member Ljava/lang/invoke/MemberName;
MethodParameters:
Name Flags
arg
private static int getConstantPoolSize(byte[]);
descriptor: ([B)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 8
baload
sipush 255
iand
bipush 8
ishl
aload 0
bipush 9
baload
sipush 255
iand
ior
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 classFile [B
MethodParameters:
Name Flags
classFile
private java.lang.invoke.MemberName loadMethod(byte[]);
descriptor: ([B)Ljava/lang/invoke/MemberName;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.cpPatches:([B)[Ljava/lang/Object;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.loadAndInitializeInvokerClass:([B[Ljava/lang/Object;)Ljava/lang/Class;
astore 2
start local 2 1: aload 2
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerName:Ljava/lang/String;
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.resolveInvokerMember:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 2 1 classFile [B
1 2 2 invokerClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
classFile
private static java.lang.Class<?> loadAndInitializeInvokerClass(byte[], []);
descriptor: ([B[Ljava/lang/Object;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Lsun/misc/Unsafe;
getstatic java.lang.invoke.InvokerBytecodeGenerator.HOST_CLASS:Ljava/lang/Class;
aload 0
aload 1
invokevirtual sun.misc.Unsafe.defineAnonymousClass:(Ljava/lang/Class;[B[Ljava/lang/Object;)Ljava/lang/Class;
astore 2
start local 2 1: getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Lsun/misc/Unsafe;
aload 2
invokevirtual sun.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 classBytes [B
0 3 1 patches [Ljava/lang/Object;
1 3 2 invokerClass Ljava/lang/Class<*>;
Signature: ([B[Ljava/lang/Object;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
classBytes
patches
private static java.lang.invoke.MemberName resolveInvokerMember(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.invoke.MemberName
dup
aload 0
aload 1
aload 2
bipush 6
invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
astore 3
start local 3 1: getstatic java.lang.invoke.InvokerBytecodeGenerator.MEMBERNAME_FACTORY:Ljava/lang/invoke/MemberName$Factory;
bipush 6
aload 3
getstatic java.lang.invoke.InvokerBytecodeGenerator.HOST_CLASS:Ljava/lang/Class;
ldc Ljava/lang/ReflectiveOperationException;
invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
astore 3
2: goto 5
StackMap locals: java.lang.Class java.lang.String java.lang.invoke.MethodType java.lang.invoke.MemberName
StackMap stack: java.lang.ReflectiveOperationException
3: astore 4
start local 4 4: aload 4
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Throwable;)Ljava/lang/InternalError;
athrow
end local 4 5: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 invokerClass Ljava/lang/Class<*>;
0 6 1 name Ljava/lang/String;
0 6 2 type Ljava/lang/invoke/MethodType;
1 6 3 member Ljava/lang/invoke/MemberName;
4 5 4 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
1 2 3 Class java.lang.ReflectiveOperationException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
MethodParameters:
Name Flags
invokerClass
name
type
private void classFilePrologue();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
new jdk.internal.org.objectweb.asm.ClassWriter
dup
iconst_3
invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(I)V
putfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
bipush 52
bipush 48
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.className:Ljava/lang/String;
aconst_null
ldc "java/lang/Object"
aconst_null
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.sourceFile:Ljava/lang/String;
aconst_null
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitSource:(Ljava/lang/String;Ljava/lang/String;)V
3: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
astore 1
start local 1 4: aload 0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
bipush 8
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerName:Ljava/lang/String;
aload 1
aconst_null
aconst_null
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
putfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
4 6 1 invokerDesc Ljava/lang/String;
private void classFileEpilogue();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iconst_0
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
private void emitConst(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
2: return
3: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Integer
ifeq 6
4: aload 0
aload 1
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
5: return
6: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Long
ifeq 12
7: aload 1
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 2
start local 2 8: lload 2
lload 2
l2i
i2s
i2l
lcmp
ifne 12
9: aload 0
lload 2
l2i
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
10: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 133
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
11: return
end local 2 12: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Float
ifeq 18
13: aload 1
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
fstore 2
start local 2 14: fload 2
fload 2
f2i
i2s
i2f
fcmpl
ifne 18
15: aload 0
fload 2
f2i
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
16: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 134
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
17: return
end local 2 18: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Double
ifeq 24
19: aload 1
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dstore 2
start local 2 20: dload 2
dload 2
d2i
i2s
i2d
dcmpl
ifne 24
21: aload 0
dload 2
d2i
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
22: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 135
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
23: return
end local 2 24: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Boolean
ifeq 29
25: aload 0
aload 1
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 26
iconst_1
goto 27
StackMap locals:
StackMap stack: java.lang.invoke.InvokerBytecodeGenerator
26: iconst_0
StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.Object
StackMap stack: java.lang.invoke.InvokerBytecodeGenerator int
27: invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
28: return
29: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
30: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 31 1 con Ljava/lang/Object;
8 12 2 x J
14 18 2 x F
20 24 2 x D
MethodParameters:
Name Flags
con
private void emitIconstInsn(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
tableswitch { // 0 - 5
0: 1
1: 3
2: 5
3: 7
4: 9
5: 11
default: 13
}
1: StackMap locals:
StackMap stack:
iconst_3
istore 2
start local 2 2: goto 21
end local 2 3: StackMap locals:
StackMap stack:
iconst_4
istore 2
start local 2 4: goto 21
end local 2 5: StackMap locals:
StackMap stack:
iconst_5
istore 2
start local 2 6: goto 21
end local 2 7: StackMap locals:
StackMap stack:
bipush 6
istore 2
start local 2 8: goto 21
end local 2 9: StackMap locals:
StackMap stack:
bipush 7
istore 2
start local 2 10: goto 21
end local 2 11: StackMap locals:
StackMap stack:
bipush 8
istore 2
start local 2 12: goto 21
end local 2 13: StackMap locals:
StackMap stack:
iload 1
iload 1
i2b
if_icmpne 16
14: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 16
iload 1
sipush 255
iand
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
15: goto 20
StackMap locals:
StackMap stack:
16: iload 1
iload 1
i2s
if_icmpne 19
17: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 17
iload 1
i2c
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
return
start local 2 21: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 2
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
22: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 23 1 i I
2 3 2 opcode I
4 5 2 opcode I
6 7 2 opcode I
8 9 2 opcode I
10 11 2 opcode I
12 13 2 opcode I
21 23 2 opcode I
MethodParameters:
Name Flags
i
private void emitLoadInsn(java.lang.invoke.LambdaForm$BasicType, int);
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.loadInsnOpcode:(Ljava/lang/invoke/LambdaForm$BasicType;)I
istore 3
start local 3 1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 3
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 2
iaload
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 3 1 type Ljava/lang/invoke/LambdaForm$BasicType;
0 3 2 index I
1 3 3 opcode I
MethodParameters:
Name Flags
type
index
private int loadInsnOpcode(java.lang.invoke.LambdaForm$BasicType);
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType:()[I
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 5
2: 1
3: 2
4: 3
5: 4
default: 6
}
1: StackMap locals:
StackMap stack:
bipush 21
ireturn
2: StackMap locals:
StackMap stack:
bipush 22
ireturn
3: StackMap locals:
StackMap stack:
bipush 23
ireturn
4: StackMap locals:
StackMap stack:
bipush 24
ireturn
5: StackMap locals:
StackMap stack:
bipush 25
ireturn
6: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unknown type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 7 1 type Ljava/lang/invoke/LambdaForm$BasicType;
Exceptions:
throws java.lang.InternalError
MethodParameters:
Name Flags
type
private void emitAloadInsn(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
iload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitLoadInsn:(Ljava/lang/invoke/LambdaForm$BasicType;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 2 1 index I
MethodParameters:
Name Flags
index
private void emitStoreInsn(java.lang.invoke.LambdaForm$BasicType, int);
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.storeInsnOpcode:(Ljava/lang/invoke/LambdaForm$BasicType;)I
istore 3
start local 3 1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 3
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 2
iaload
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 3 1 type Ljava/lang/invoke/LambdaForm$BasicType;
0 3 2 index I
1 3 3 opcode I
MethodParameters:
Name Flags
type
index
private int storeInsnOpcode(java.lang.invoke.LambdaForm$BasicType);
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType:()[I
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 5
2: 1
3: 2
4: 3
5: 4
default: 6
}
1: StackMap locals:
StackMap stack:
bipush 54
ireturn
2: StackMap locals:
StackMap stack:
bipush 55
ireturn
3: StackMap locals:
StackMap stack:
bipush 56
ireturn
4: StackMap locals:
StackMap stack:
bipush 57
ireturn
5: StackMap locals:
StackMap stack:
bipush 58
ireturn
6: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unknown type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 7 1 type Ljava/lang/invoke/LambdaForm$BasicType;
Exceptions:
throws java.lang.InternalError
MethodParameters:
Name Flags
type
private void emitAstoreInsn(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
iload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStoreInsn:(Ljava/lang/invoke/LambdaForm$BasicType;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 2 1 index I
MethodParameters:
Name Flags
index
private byte arrayTypeCode(sun.invoke.util.Wrapper);
descriptor: (Lsun/invoke/util/Wrapper;)B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 1
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 1 - 9
1: 1
2: 2
3: 4
4: 3
5: 5
6: 6
7: 7
8: 8
9: 9
default: 10
}
1: StackMap locals:
StackMap stack:
iconst_4
ireturn
2: StackMap locals:
StackMap stack:
bipush 8
ireturn
3: StackMap locals:
StackMap stack:
iconst_5
ireturn
4: StackMap locals:
StackMap stack:
bipush 9
ireturn
5: StackMap locals:
StackMap stack:
bipush 10
ireturn
6: StackMap locals:
StackMap stack:
bipush 11
ireturn
7: StackMap locals:
StackMap stack:
bipush 6
ireturn
8: StackMap locals:
StackMap stack:
bipush 7
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 11 1 elementType Lsun/invoke/util/Wrapper;
MethodParameters:
Name Flags
elementType
private int arrayInsnOpcode(byte, int);
descriptor: (BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
iload 2
bipush 83
if_icmpeq 1
iload 2
bipush 50
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iload 1
tableswitch { // 0 - 11
0: 18
1: 20
2: 20
3: 20
4: 2
5: 6
6: 14
7: 16
8: 4
9: 8
10: 10
11: 12
default: 20
}
2: StackMap locals:
StackMap stack:
bipush 84
istore 3
start local 3 3: goto 21
end local 3 4: StackMap locals:
StackMap stack:
bipush 84
istore 3
start local 3 5: goto 21
end local 3 6: StackMap locals:
StackMap stack:
bipush 85
istore 3
start local 3 7: goto 21
end local 3 8: StackMap locals:
StackMap stack:
bipush 86
istore 3
start local 3 9: goto 21
end local 3 10: StackMap locals:
StackMap stack:
bipush 79
istore 3
start local 3 11: goto 21
end local 3 12: StackMap locals:
StackMap stack:
bipush 80
istore 3
start local 3 13: goto 21
end local 3 14: StackMap locals:
StackMap stack:
bipush 81
istore 3
start local 3 15: goto 21
end local 3 16: StackMap locals:
StackMap stack:
bipush 82
istore 3
start local 3 17: goto 21
end local 3 18: StackMap locals:
StackMap stack:
bipush 83
istore 3
start local 3 19: goto 21
end local 3 20: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
start local 3 21: StackMap locals: int
StackMap stack:
iload 3
bipush 83
isub
iload 2
iadd
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 22 1 tcode B
0 22 2 aaop I
3 4 3 xas I
5 6 3 xas I
7 8 3 xas I
9 10 3 xas I
11 12 3 xas I
13 14 3 xas I
15 16 3 xas I
17 18 3 xas I
19 20 3 xas I
21 22 3 xas I
Exceptions:
throws java.lang.InternalError
MethodParameters:
Name Flags
tcode
aaop
private void freeFrameLocal(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.indexForFrameLocal:(I)I
istore 2
start local 2 1: iload 2
ifge 2
return
2: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
iload 2
aaload
astore 3
start local 3 3: aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.makeLocalTemp:(Ljava/lang/invoke/LambdaForm$BasicType;)I
istore 4
start local 4 4: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.loadInsnOpcode:(Ljava/lang/invoke/LambdaForm$BasicType;)I
iload 1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
5: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.storeInsnOpcode:(Ljava/lang/invoke/LambdaForm$BasicType;)I
iload 4
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
6: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 7
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 2
iaload
iload 1
if_icmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: java.lang.invoke.LambdaForm$BasicType int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 2
iload 4
iastore
8: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 9
aload 0
iload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.indexForFrameLocal:(I)I
iflt 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 10 1 oldFrameLocal I
1 10 2 i I
3 10 3 type Ljava/lang/invoke/LambdaForm$BasicType;
4 10 4 newFrameLocal I
MethodParameters:
Name Flags
oldFrameLocal
private int indexForFrameLocal(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iload 2
iaload
iload 1
if_icmpne 4
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localTypes:[Ljava/lang/invoke/LambdaForm$BasicType;
iload 2
aaload
getstatic java.lang.invoke.LambdaForm$BasicType.V_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpeq 4
3: iload 2
ireturn
4: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
arraylength
if_icmplt 2
end local 2 6: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 7 1 frameLocal I
1 6 2 i I
MethodParameters:
Name Flags
frameLocal
private int makeLocalTemp(java.lang.invoke.LambdaForm$BasicType);
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
arraylength
iconst_1
isub
iaload
istore 2
start local 2 1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
arraylength
iconst_1
isub
iload 2
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeSlots:()I
iadd
iastore
2: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 3 1 type Ljava/lang/invoke/LambdaForm$BasicType;
1 3 2 frameLocal I
MethodParameters:
Name Flags
type
private void emitBoxing(sun.invoke.util.Wrapper);
descriptor: (Lsun/invoke/util/Wrapper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "java/lang/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual sun.invoke.util.Wrapper.wrapperType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: ldc "valueOf"
astore 3
start local 3 2: new java.lang.StringBuilder
dup
ldc "("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual sun.invoke.util.Wrapper.basicTypeChar:()C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc ")L"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ";"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 3: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 184
aload 2
aload 3
aload 4
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 5 1 wrapper Lsun/invoke/util/Wrapper;
1 5 2 owner Ljava/lang/String;
2 5 3 name Ljava/lang/String;
3 5 4 desc Ljava/lang/String;
MethodParameters:
Name Flags
wrapper
private void emitUnboxing(sun.invoke.util.Wrapper);
descriptor: (Lsun/invoke/util/Wrapper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "java/lang/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual sun.invoke.util.Wrapper.wrapperType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: new java.lang.StringBuilder
dup
aload 1
invokevirtual sun.invoke.util.Wrapper.primitiveSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 2: new java.lang.StringBuilder
dup
ldc "()"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual sun.invoke.util.Wrapper.basicTypeChar:()C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 3: aload 0
aload 1
invokevirtual sun.invoke.util.Wrapper.wrapperType:()Ljava/lang/Class;
aconst_null
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReferenceCast:(Ljava/lang/Class;Ljava/lang/Object;)V
4: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
aload 2
aload 3
aload 4
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 6 1 wrapper Lsun/invoke/util/Wrapper;
1 6 2 owner Ljava/lang/String;
2 6 3 name Ljava/lang/String;
3 6 4 desc Ljava/lang/String;
MethodParameters:
Name Flags
wrapper
private void emitImplicitConversion(java.lang.invoke.LambdaForm$BasicType, java.lang.Class<?>, );
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;Ljava/lang/Class;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
aload 1
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeClass:()Ljava/lang/Class;
if_acmpne 3
aload 1
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpeq 3
2: return
3: StackMap locals:
StackMap stack:
invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType:()[I
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 4
2: 10
default: 13
}
4: StackMap locals:
StackMap stack:
ldc Ljava/lang/Object;
aload 2
iconst_0
invokestatic sun.invoke.util.VerifyType.isNullConversion:(Ljava/lang/Class;Ljava/lang/Class;Z)Z
ifeq 8
5: getstatic java.lang.invoke.MethodHandleStatics.PROFILE_LEVEL:I
ifle 7
6: aload 0
ldc Ljava/lang/Object;
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReferenceCast:(Ljava/lang/Class;Ljava/lang/Object;)V
7: StackMap locals:
StackMap stack:
return
8: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReferenceCast:(Ljava/lang/Class;Ljava/lang/Object;)V
9: return
10: StackMap locals:
StackMap stack:
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aload 2
iconst_0
invokestatic sun.invoke.util.VerifyType.isNullConversion:(Ljava/lang/Class;Ljava/lang/Class;Z)Z
ifne 12
11: aload 0
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeWrapper:()Lsun/invoke/util/Wrapper;
aload 2
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPrimCast:(Lsun/invoke/util/Wrapper;Lsun/invoke/util/Wrapper;)V
12: StackMap locals:
StackMap stack:
return
13: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "bad implicit conversion: tc="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 14 1 ptype Ljava/lang/invoke/LambdaForm$BasicType;
0 14 2 pclass Ljava/lang/Class<*>;
0 14 3 arg Ljava/lang/Object;
Signature: (Ljava/lang/invoke/LambdaForm$BasicType;Ljava/lang/Class<*>;Ljava/lang/Object;)V
MethodParameters:
Name Flags
ptype
pclass
arg
private boolean assertStaticType(java.lang.Class<?>, java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/LambdaForm$Name;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.invoke.LambdaForm$Name.index:()I
istore 3
start local 3 1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localClasses:[Ljava/lang/Class;
iload 3
aaload
astore 4
start local 4 2: aload 4
ifnull 4
aload 4
aload 1
if_acmpeq 3
aload 1
aload 4
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 4
3: StackMap locals: int java.lang.Class
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 4
ifnull 5
aload 4
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 6
5: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localClasses:[Ljava/lang/Class;
iload 3
aload 1
aastore
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 7 1 cls Ljava/lang/Class<*>;
0 7 2 n Ljava/lang/invoke/LambdaForm$Name;
1 7 3 local I
2 7 4 aclass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/LambdaForm$Name;)Z
MethodParameters:
Name Flags
cls
n
private void emitReferenceCast(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 2
instanceof java.lang.invoke.LambdaForm$Name
ifeq 7
2: aload 2
checkcast java.lang.invoke.LambdaForm$Name
astore 4
start local 4 3: aload 0
aload 1
aload 4
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.assertStaticType:(Ljava/lang/Class;Ljava/lang/invoke/LambdaForm$Name;)Z
ifeq 5
4: return
5: StackMap locals: java.lang.invoke.LambdaForm$Name java.lang.invoke.LambdaForm$Name
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
aload 4
invokevirtual java.lang.invoke.LambdaForm.useCount:(Ljava/lang/invoke/LambdaForm$Name;)I
iconst_1
if_icmple 7
6: aload 4
astore 3
end local 4 7: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyNameable:(Ljava/lang/Class;)Z
ifeq 11
8: aload 1
invokestatic java.lang.invoke.InvokerBytecodeGenerator.getInternalName:(Ljava/lang/Class;)Ljava/lang/String;
astore 4
start local 4 9: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 192
aload 4
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
end local 4 10: goto 19
11: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.constantPlaceholder:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
12: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 192
ldc "java/lang/Class"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
13: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 95
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
14: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 184
ldc "java/lang/invoke/MethodHandleImpl"
ldc "castReference"
ldc "(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;"
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
15: ldc [Ljava/lang/Object;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 17
16: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 192
ldc "[Ljava/lang/Object;"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
goto 19
17: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandleStatics.PROFILE_LEVEL:I
ifle 19
18: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 192
ldc "java/lang/Object"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
19: StackMap locals:
StackMap stack:
aload 3
ifnull 22
20: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 89
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
21: aload 0
aload 3
invokevirtual java.lang.invoke.LambdaForm$Name.index:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitAstoreInsn:(I)V
22: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 23 1 cls Ljava/lang/Class<*>;
0 23 2 arg Ljava/lang/Object;
1 23 3 writeBack Ljava/lang/invoke/LambdaForm$Name;
3 7 4 n Ljava/lang/invoke/LambdaForm$Name;
9 10 4 sig Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)V
MethodParameters:
Name Flags
cls
arg
private void emitReturnInsn(java.lang.invoke.LambdaForm$BasicType);
descriptor: (Ljava/lang/invoke/LambdaForm$BasicType;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType:()[I
aload 1
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 9
2: 1
3: 3
4: 5
5: 7
6: 11
default: 13
}
1: StackMap locals:
StackMap stack:
sipush 172
istore 2
start local 2 2: goto 14
end local 2 3: StackMap locals:
StackMap stack:
sipush 173
istore 2
start local 2 4: goto 14
end local 2 5: StackMap locals:
StackMap stack:
sipush 174
istore 2
start local 2 6: goto 14
end local 2 7: StackMap locals:
StackMap stack:
sipush 175
istore 2
start local 2 8: goto 14
end local 2 9: StackMap locals:
StackMap stack:
sipush 176
istore 2
start local 2 10: goto 14
end local 2 11: StackMap locals:
StackMap stack:
sipush 177
istore 2
start local 2 12: goto 14
end local 2 13: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unknown return type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
start local 2 14: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 2
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 16 1 type Ljava/lang/invoke/LambdaForm$BasicType;
2 3 2 opcode I
4 5 2 opcode I
6 7 2 opcode I
8 9 2 opcode I
10 11 2 opcode I
12 13 2 opcode I
14 16 2 opcode I
MethodParameters:
Name Flags
type
private static java.lang.String getInternalName(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/Object;
if_acmpne 1
ldc "java/lang/Object"
areturn
1: StackMap locals:
StackMap stack:
aload 0
ldc [Ljava/lang/Object;
if_acmpne 2
ldc "[Ljava/lang/Object;"
areturn
2: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/Class;
if_acmpne 3
ldc "java/lang/Class"
areturn
3: StackMap locals:
StackMap stack:
aload 0
ldc Ljava/lang/invoke/MethodHandle;
if_acmpne 4
ldc "java/lang/invoke/MethodHandle"
areturn
4: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 5
aload 0
ldc Ljava/lang/Object;
invokestatic sun.invoke.util.VerifyAccess.isTypeVisible:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifne 5
new java.lang.AssertionError
dup
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 c Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
c
static java.lang.invoke.MemberName generateCustomizedCode(java.lang.invoke.LambdaForm, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.invoke.InvokerBytecodeGenerator
dup
ldc "MH"
aload 0
aload 1
invokespecial java.lang.invoke.InvokerBytecodeGenerator.<init>:(Ljava/lang/String;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodType;)V
astore 2
start local 2 1: aload 2
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCodeBytes:()[B
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.loadMethod:([B)Ljava/lang/invoke/MemberName;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 form Ljava/lang/invoke/LambdaForm;
0 2 1 invokerType Ljava/lang/invoke/MethodType;
1 2 2 g Ljava/lang/invoke/InvokerBytecodeGenerator;
MethodParameters:
Name Flags
form
invokerType
private boolean checkActualReceiver();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 89
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 25
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iconst_0
iaload
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 184
ldc "java/lang/invoke/MethodHandleImpl"
ldc "assertSame"
ldc "(Ljava/lang/Object;Ljava/lang/Object;)V"
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
private byte[] generateCustomizedCodeBytes();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.classFilePrologue:()V
1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/LambdaForm$Hidden;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/LambdaForm$Compiled;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
3: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.forceInline:Z
ifeq 6
4: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/ForceInline;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/DontInline;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
7: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.customized:Ljava/lang/invoke/MethodHandle;
ifnull 12
8: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.customized:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.constantPlaceholder:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
9: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 192
ldc "java/lang/invoke/MethodHandle"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
10: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 11
aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.checkActualReceiver:()Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 58
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localsMap:[I
iconst_0
iaload
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
12: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 13: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.arity:I
istore 2
start local 2 14: goto 55
15: StackMap locals: java.lang.invoke.LambdaForm$Name int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 2
aaload
astore 3
start local 3 16: aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStoreResult:(Ljava/lang/invoke/LambdaForm$Name;)V
17: aload 3
astore 1
18: aload 3
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.intrinsicName:()Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
astore 4
start local 4 19: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$Intrinsic:()[I
aload 4
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 20
2: 29
3: 33
4: 37
5: 39
6: 41
7: 44
8: 47
default: 48
}
20: StackMap locals: java.lang.invoke.LambdaForm$Name java.lang.invoke.MethodHandleImpl$Intrinsic
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 21
aload 0
iload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.isSelectAlternative:(I)Z
ifne 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandleStatics.PROFILE_GWT:Z
ifeq 26
22: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 25
aload 3
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
iconst_0
aaload
instanceof java.lang.invoke.LambdaForm$Name
ifeq 24
23: aload 0
aload 3
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
iconst_0
aaload
checkcast java.lang.invoke.LambdaForm$Name
ldc Ljava/lang/invoke/MethodHandleImpl;
ldc "profileBoolean"
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.nameRefersTo:(Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/Class;Ljava/lang/String;)Z
ifne 25
StackMap locals:
StackMap stack:
24: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/InjectedProfile;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
26: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 2
iconst_1
iadd
aaload
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitSelectAlternative:(Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Name;)Ljava/lang/invoke/LambdaForm$Name;
astore 1
27: iinc 2 1
28: goto 54
29: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 30
aload 0
iload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.isGuardWithCatch:(I)Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitGuardWithCatch:(I)Ljava/lang/invoke/LambdaForm$Name;
astore 1
31: iinc 2 2
32: goto 54
33: StackMap locals:
StackMap stack:
aload 3
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.methodType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 5
start local 5 34: aload 5
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyNameable:(Ljava/lang/Class;)Z
ifeq 49
35: aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitNewArray:(Ljava/lang/invoke/LambdaForm$Name;)V
36: goto 54
end local 5 37: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitArrayLoad:(Ljava/lang/invoke/LambdaForm$Name;)V
38: goto 54
39: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitArrayStore:(Ljava/lang/invoke/LambdaForm$Name;)V
40: goto 54
41: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 42
aload 3
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
iconst_1
if_icmpeq 42
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
42: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;)V
43: goto 54
44: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 45
aload 3
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
ifeq 45
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
45: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield java.lang.invoke.LambdaForm$Name.type:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeWrapper:()Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.zero:()Ljava/lang/Object;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitConst:(Ljava/lang/Object;)V
46: goto 54
47: StackMap locals:
StackMap stack:
goto 49
48: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unknown intrinsic: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
athrow
49: StackMap locals:
StackMap stack:
aload 3
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
astore 5
start local 5 50: aload 5
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:(Ljava/lang/invoke/MemberName;)Z
ifeq 53
51: aload 0
aload 5
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStaticInvoke:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/LambdaForm$Name;)V
52: goto 54
53: StackMap locals: java.lang.invoke.MemberName
StackMap stack:
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitInvoke:(Ljava/lang/invoke/LambdaForm$Name;)V
end local 5 end local 4 end local 3 54: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
55: iload 2
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
arraylength
if_icmplt 15
end local 2 56: aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReturn:(Ljava/lang/invoke/LambdaForm$Name;)V
57: aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.classFileEpilogue:()V
58: aload 0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
aastore
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.bogusMethod:([Ljava/lang/Object;)V
59: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
astore 2
start local 2 60: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.className:Ljava/lang/String;
aload 2
invokestatic java.lang.invoke.InvokerBytecodeGenerator.maybeDump:(Ljava/lang/String;[B)V
61: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
13 62 1 onStack Ljava/lang/invoke/LambdaForm$Name;
14 56 2 i I
16 54 3 name Ljava/lang/invoke/LambdaForm$Name;
19 54 4 intr Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
34 37 5 rtype Ljava/lang/Class<*>;
50 54 5 member Ljava/lang/invoke/MemberName;
60 62 2 classFile [B
void emitArrayLoad(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
bipush 50
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitArrayOp:(Ljava/lang/invoke/LambdaForm$Name;I)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 1 1 name Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
name
void emitArrayStore(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
bipush 83
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitArrayOp:(Ljava/lang/invoke/LambdaForm$Name;I)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 1 1 name Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
name
void emitArrayOp(java.lang.invoke.LambdaForm$Name, int);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;I)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
iload 2
bipush 50
if_icmpeq 1
iload 2
bipush 83
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.methodType:()Ljava/lang/invoke/MethodType;
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 3
start local 3 2: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 3
aload 3
ifnonnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;)V
4: aload 3
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 7
5: aload 3
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
astore 4
start local 4 6: aload 0
aload 0
aload 4
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.arrayTypeCode:(Lsun/invoke/util/Wrapper;)B
iload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.arrayInsnOpcode:(BI)I
istore 2
end local 4 7: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 2
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 9 1 name Ljava/lang/invoke/LambdaForm$Name;
0 9 2 arrayOpcode I
2 9 3 elementType Ljava/lang/Class<*>;
6 7 4 w Lsun/invoke/util/Wrapper;
MethodParameters:
Name Flags
name
arrayOpcode
void emitInvoke(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.isLinkerMethodInvoke:(Ljava/lang/invoke/LambdaForm$Name;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
getfield java.lang.invoke.LambdaForm$NamedFunction.resolvedHandle:Ljava/lang/invoke/MethodHandle;
astore 2
start local 2 2: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 3
aload 2
ifnonnull 3
new java.lang.AssertionError
dup
aload 1
invokevirtual java.lang.invoke.LambdaForm$Name.exprString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.constantPlaceholder:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
4: aload 0
ldc Ljava/lang/invoke/MethodHandle;
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReferenceCast:(Ljava/lang/Class;Ljava/lang/Object;)V
end local 2 5: aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;)V
6: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.methodType:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 7: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
ldc "java/lang/invoke/MethodHandle"
ldc "invokeBasic"
aload 2
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 9 1 name Ljava/lang/invoke/LambdaForm$Name;
2 5 2 target Ljava/lang/invoke/MethodHandle;
7 9 2 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
name
static boolean isStaticallyInvocable(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:(Ljava/lang/invoke/MemberName;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
name
static boolean isStaticallyInvocable(java.lang.invoke.MemberName);
descriptor: (Ljava/lang/invoke/MemberName;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
ifeq 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
astore 1
start local 1 3: aload 1
invokevirtual java.lang.Class.isArray:()Z
ifne 4
aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 5
4: StackMap locals: java.lang.Class
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.isAnonymousClass:()Z
ifne 6
aload 1
invokevirtual java.lang.Class.isLocalClass:()Z
ifeq 7
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
ldc Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpeq 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.reflect.misc.ReflectUtil.isVMAnonymousClass:(Ljava/lang/Class;)Z
ifeq 11
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MemberName.getMethodOrFieldType:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 12: aload 2
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyNameable:(Ljava/lang/Class;)Z
ifne 14
13: iconst_0
ireturn
14: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 19
StackMap locals: java.lang.invoke.MemberName java.lang.Class java.lang.invoke.MethodType top int int java.lang.Class[]
StackMap stack:
15: aload 6
iload 4
aaload
astore 3
start local 3 16: aload 3
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyNameable:(Ljava/lang/Class;)Z
ifne 18
17: iconst_0
ireturn
end local 3 18: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
19: iload 4
iload 5
if_icmplt 15
20: aload 0
invokevirtual java.lang.invoke.MemberName.isPrivate:()Z
ifne 22
ldc Ljava/lang/invoke/MethodHandle;
aload 1
invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 22
21: iconst_1
ireturn
22: StackMap locals: java.lang.invoke.MemberName java.lang.Class java.lang.invoke.MethodType
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MemberName.isPublic:()Z
ifeq 24
aload 1
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyNameable:(Ljava/lang/Class;)Z
ifeq 24
23: iconst_1
ireturn
24: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 member Ljava/lang/invoke/MemberName;
3 25 1 cls Ljava/lang/Class<*>;
12 25 2 mtype Ljava/lang/invoke/MethodType;
16 18 3 ptype Ljava/lang/Class<*>;
MethodParameters:
Name Flags
member
static boolean isStaticallyNameable(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/Object;
if_acmpne 3
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 0
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.isArray:()Z
ifne 2
4: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.reflect.misc.ReflectUtil.isVMAnonymousClass:(Ljava/lang/Class;)Z
ifeq 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
ldc Ljava/lang/Object;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpeq 10
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
ldc Ljava/lang/invoke/MethodHandle;
aload 0
invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 12
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 14
13: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.STATICALLY_INVOCABLE_PACKAGES:[Ljava/lang/Class;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 19
StackMap locals: java.lang.Class top int int java.lang.Class[]
StackMap stack:
15: aload 4
iload 2
aaload
astore 1
start local 1 16: aload 1
aload 0
invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 18
17: iconst_1
ireturn
end local 1 18: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
19: iload 2
iload 3
if_icmplt 15
20: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 cls Ljava/lang/Class<*>;
16 18 1 pkgcls Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
cls
void emitStaticInvoke(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStaticInvoke:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/LambdaForm$Name;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 2 1 name Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
name
void emitStaticInvoke(java.lang.invoke.MemberName, java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0000)
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
aload 1
aload 2
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
invokevirtual java.lang.invoke.MemberName.equals:(Ljava/lang/invoke/MemberName;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
astore 3
start local 3 2: aload 3
invokestatic java.lang.invoke.InvokerBytecodeGenerator.getInternalName:(Ljava/lang/Class;)Ljava/lang/String;
astore 4
start local 4 3: aload 1
invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
astore 5
start local 5 4: aload 1
invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
istore 7
start local 7 5: iload 7
bipush 7
if_icmpne 8
6: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 7
aload 1
invokevirtual java.lang.invoke.MemberName.canBeStaticallyBound:()Z
ifne 7
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.invoke.MemberName java.lang.invoke.LambdaForm$Name java.lang.Class java.lang.String java.lang.String top int
StackMap stack:
iconst_5
istore 7
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isInterface:()Z
ifeq 10
iload 7
iconst_5
if_icmpne 10
9: bipush 9
istore 7
10: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;)V
11: aload 1
invokevirtual java.lang.invoke.MemberName.isMethod:()Z
ifeq 17
12: aload 1
invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
astore 6
start local 6 13: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
iload 7
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.refKindOpcode:(B)I
aload 4
aload 5
aload 6
14: aload 1
invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isInterface:()Z
15: invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
16: goto 19
end local 6 17: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MemberName.getFieldType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodType.toFieldDescriptorString:(Ljava/lang/Class;)Ljava/lang/String;
astore 6
start local 6 18: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
iload 7
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.refKindOpcode:(B)I
aload 4
aload 5
aload 6
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitFieldInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
19: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.invoke.MemberName java.lang.invoke.LambdaForm$Name java.lang.Class java.lang.String java.lang.String java.lang.String int
StackMap stack:
aload 2
getfield java.lang.invoke.LambdaForm$Name.type:Ljava/lang/invoke/LambdaForm$BasicType;
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpne 24
20: aload 1
invokevirtual java.lang.invoke.MemberName.getInvocationType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 8
start local 8 21: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 22
aload 8
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals: java.lang.Class
StackMap stack:
aload 8
ldc Ljava/lang/Object;
if_acmpeq 24
aload 8
invokevirtual java.lang.Class.isInterface:()Z
ifne 24
23: aload 0
aload 8
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.assertStaticType:(Ljava/lang/Class;Ljava/lang/invoke/LambdaForm$Name;)Z
pop
end local 8 24: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 25 1 member Ljava/lang/invoke/MemberName;
0 25 2 name Ljava/lang/invoke/LambdaForm$Name;
2 25 3 defc Ljava/lang/Class<*>;
3 25 4 cname Ljava/lang/String;
4 25 5 mname Ljava/lang/String;
13 17 6 mtype Ljava/lang/String;
18 25 6 mtype Ljava/lang/String;
5 25 7 refKind B
21 24 8 rtype Ljava/lang/Class<*>;
MethodParameters:
Name Flags
member
name
void emitNewArray(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.methodType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 2
start local 2 1: aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
ifne 11
2: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
getfield java.lang.invoke.LambdaForm$NamedFunction.resolvedHandle:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.invoke:()Ljava/lang/Object;
astore 3
start local 3 3: goto 6
end local 3 StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.invoke.LambdaForm$Name java.lang.Class
StackMap stack: java.lang.Throwable
4: astore 4
start local 4 5: aload 4
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Throwable;)Ljava/lang/InternalError;
athrow
end local 4 start local 3 6: StackMap locals: java.lang.Object
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 7
aload 3
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
ifeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 8
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.constantPlaceholder:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
9: aload 0
aload 2
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReferenceCast:(Ljava/lang/Class;Ljava/lang/Object;)V
10: return
end local 3 11: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 3
start local 3 12: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 13
aload 3
ifnonnull 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals: java.lang.Class
StackMap stack:
aload 0
aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
14: bipush 83
istore 4
start local 4 15: aload 3
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 18
16: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 189
aload 3
invokestatic java.lang.invoke.InvokerBytecodeGenerator.getInternalName:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
17: goto 21
18: StackMap locals: int
StackMap stack:
aload 0
aload 3
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.arrayTypeCode:(Lsun/invoke/util/Wrapper;)B
istore 5
start local 5 19: aload 0
iload 5
iload 4
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.arrayInsnOpcode:(BI)I
istore 4
20: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 188
iload 5
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
end local 5 21: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 22: goto 28
23: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 89
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
24: aload 0
iload 5
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
25: aload 0
aload 1
iload 5
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
26: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iload 4
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
27: iinc 5 1
StackMap locals:
StackMap stack:
28: iload 5
aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
if_icmplt 23
end local 5 29: aload 0
aload 2
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.assertStaticType:(Ljava/lang/Class;Ljava/lang/invoke/LambdaForm$Name;)Z
pop
30: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 31 1 name Ljava/lang/invoke/LambdaForm$Name;
1 31 2 rtype Ljava/lang/Class<*>;
3 4 3 emptyArray Ljava/lang/Object;
6 11 3 emptyArray Ljava/lang/Object;
5 6 4 ex Ljava/lang/Throwable;
12 31 3 arrayElementType Ljava/lang/Class<*>;
15 31 4 xas I
19 21 5 tc B
22 29 5 i I
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
Exceptions:
throws java.lang.InternalError
MethodParameters:
Name Flags
name
int refKindOpcode(byte);
descriptor: (B)I
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
tableswitch { // 1 - 9
1: 5
2: 7
3: 6
4: 8
5: 1
6: 2
7: 3
8: 9
9: 4
default: 9
}
1: StackMap locals:
StackMap stack:
sipush 182
ireturn
2: StackMap locals:
StackMap stack:
sipush 184
ireturn
3: StackMap locals:
StackMap stack:
sipush 183
ireturn
4: StackMap locals:
StackMap stack:
sipush 185
ireturn
5: StackMap locals:
StackMap stack:
sipush 180
ireturn
6: StackMap locals:
StackMap stack:
sipush 181
ireturn
7: StackMap locals:
StackMap stack:
sipush 178
ireturn
8: StackMap locals:
StackMap stack:
sipush 179
ireturn
9: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "refKind="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 10 1 refKind B
MethodParameters:
Name Flags
refKind
private boolean memberRefersTo(java.lang.invoke.MemberName, java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnull 4
1: aload 1
invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
aload 2
if_acmpne 4
2: aload 1
invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 5 1 member Ljava/lang/invoke/MemberName;
0 5 2 declaringClass Ljava/lang/Class<*>;
0 5 3 name Ljava/lang/String;
Signature: (Ljava/lang/invoke/MemberName;Ljava/lang/Class<*>;Ljava/lang/String;)Z
MethodParameters:
Name Flags
member
declaringClass
name
private boolean nameRefersTo(java.lang.invoke.LambdaForm$Name, java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/Class;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
ifnull 3
1: aload 0
aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
aload 2
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.memberRefersTo:(Ljava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 4 1 name Ljava/lang/invoke/LambdaForm$Name;
0 4 2 declaringClass Ljava/lang/Class<*>;
0 4 3 methodName Ljava/lang/String;
Signature: (Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/Class<*>;Ljava/lang/String;)Z
MethodParameters:
Name Flags
name
declaringClass
methodName
private boolean isInvokeBasic(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
iconst_1
if_icmpge 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
astore 2
start local 2 5: aload 0
aload 2
ldc Ljava/lang/invoke/MethodHandle;
ldc "invokeBasic"
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.memberRefersTo:(Ljava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 8
6: aload 2
invokevirtual java.lang.invoke.MemberName.isPublic:()Z
ifne 8
aload 2
invokevirtual java.lang.invoke.MemberName.isStatic:()Z
ifne 8
7: iconst_1
ireturn
StackMap locals: java.lang.invoke.MemberName
StackMap stack:
8: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 9 1 name Ljava/lang/invoke/LambdaForm$Name;
5 9 2 member Ljava/lang/invoke/MemberName;
MethodParameters:
Name Flags
name
private boolean isLinkerMethodInvoke(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
iconst_1
if_icmpge 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.member:()Ljava/lang/invoke/MemberName;
astore 2
start local 2 5: aload 2
ifnull 10
6: aload 2
invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
ldc Ljava/lang/invoke/MethodHandle;
if_acmpne 10
7: aload 2
invokevirtual java.lang.invoke.MemberName.isPublic:()Z
ifne 10
aload 2
invokevirtual java.lang.invoke.MemberName.isStatic:()Z
ifeq 10
8: aload 2
invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
ldc "linkTo"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 10
9: iconst_1
ireturn
StackMap locals: java.lang.invoke.MemberName
StackMap stack:
10: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 11 1 name Ljava/lang/invoke/LambdaForm$Name;
5 11 2 member Ljava/lang/invoke/MemberName;
MethodParameters:
Name Flags
name
private boolean isSelectAlternative(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
iadd
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
arraylength
if_icmplt 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
aaload
astore 2
start local 2 2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
iconst_1
iadd
aaload
astore 3
start local 3 3: aload 0
aload 2
ldc Ljava/lang/invoke/MethodHandleImpl;
ldc "selectAlternative"
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.nameRefersTo:(Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 8
4: aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.isInvokeBasic:(Ljava/lang/invoke/LambdaForm$Name;)Z
ifeq 8
5: aload 3
aload 2
invokevirtual java.lang.invoke.LambdaForm$Name.lastUseIndex:(Ljava/lang/invoke/LambdaForm$Name;)I
ifne 8
6: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
aload 2
invokevirtual java.lang.invoke.LambdaForm.lastUseIndex:(Ljava/lang/invoke/LambdaForm$Name;)I
iload 1
iconst_1
iadd
if_icmpne 8
7: iconst_1
ireturn
StackMap locals: java.lang.invoke.LambdaForm$Name java.lang.invoke.LambdaForm$Name
StackMap stack:
8: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 9 1 pos I
2 9 2 name0 Ljava/lang/invoke/LambdaForm$Name;
3 9 3 name1 Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
pos
private boolean isGuardWithCatch(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: iload 1
iconst_2
iadd
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
arraylength
if_icmplt 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
aaload
astore 2
start local 2 2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
iconst_1
iadd
aaload
astore 3
start local 3 3: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
iconst_2
iadd
aaload
astore 4
start local 4 4: aload 0
aload 3
ldc Ljava/lang/invoke/MethodHandleImpl;
ldc "guardWithCatch"
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.nameRefersTo:(Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/Class;Ljava/lang/String;)Z
ifeq 12
5: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.isInvokeBasic:(Ljava/lang/invoke/LambdaForm$Name;)Z
ifeq 12
6: aload 0
aload 4
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.isInvokeBasic:(Ljava/lang/invoke/LambdaForm$Name;)Z
ifeq 12
7: aload 3
aload 2
invokevirtual java.lang.invoke.LambdaForm$Name.lastUseIndex:(Ljava/lang/invoke/LambdaForm$Name;)I
iconst_3
if_icmpne 12
8: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
aload 2
invokevirtual java.lang.invoke.LambdaForm.lastUseIndex:(Ljava/lang/invoke/LambdaForm$Name;)I
iload 1
iconst_1
iadd
if_icmpne 12
9: aload 4
aload 3
invokevirtual java.lang.invoke.LambdaForm$Name.lastUseIndex:(Ljava/lang/invoke/LambdaForm$Name;)I
iconst_1
if_icmpne 12
10: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
aload 3
invokevirtual java.lang.invoke.LambdaForm.lastUseIndex:(Ljava/lang/invoke/LambdaForm$Name;)I
iload 1
iconst_2
iadd
if_icmpne 12
11: iconst_1
ireturn
StackMap locals: java.lang.invoke.LambdaForm$Name java.lang.invoke.LambdaForm$Name java.lang.invoke.LambdaForm$Name
StackMap stack:
12: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 13 1 pos I
2 13 2 name0 Ljava/lang/invoke/LambdaForm$Name;
3 13 3 name1 Ljava/lang/invoke/LambdaForm$Name;
4 13 4 name2 Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
pos
private java.lang.invoke.LambdaForm$Name emitSelectAlternative(java.lang.invoke.LambdaForm$Name, java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Name;)Ljava/lang/invoke/LambdaForm$Name;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:(Ljava/lang/invoke/LambdaForm$Name;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
iconst_0
aaload
checkcast java.lang.invoke.LambdaForm$Name
astore 3
start local 3 2: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 4
start local 4 3: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 5
start local 5 4: aload 0
aload 1
iconst_0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
5: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 153
aload 4
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILjdk/internal/org/objectweb/asm/Label;)V
6: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localClasses:[Ljava/lang/Class;
invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
checkcast java.lang.Class[]
astore 6
start local 6 7: aload 0
aload 1
iconst_1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
8: aload 0
aload 3
invokevirtual java.lang.invoke.LambdaForm$Name.index:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitAstoreInsn:(I)V
9: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStaticInvoke:(Ljava/lang/invoke/LambdaForm$Name;)V
10: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 167
aload 5
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILjdk/internal/org/objectweb/asm/Label;)V
11: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 4
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
12: aload 6
iconst_0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localClasses:[Ljava/lang/Class;
iconst_0
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 0
aload 1
iconst_2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
14: aload 0
aload 3
invokevirtual java.lang.invoke.LambdaForm$Name.index:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitAstoreInsn:(I)V
15: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStaticInvoke:(Ljava/lang/invoke/LambdaForm$Name;)V
16: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 5
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
17: aload 6
iconst_0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.localClasses:[Ljava/lang/Class;
iconst_0
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: aload 2
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 19 1 selectAlternativeName Ljava/lang/invoke/LambdaForm$Name;
0 19 2 invokeBasicName Ljava/lang/invoke/LambdaForm$Name;
2 19 3 receiver Ljava/lang/invoke/LambdaForm$Name;
3 19 4 L_fallback Ljdk/internal/org/objectweb/asm/Label;
4 19 5 L_done Ljdk/internal/org/objectweb/asm/Label;
7 19 6 preForkClasses [Ljava/lang/Class;
MethodParameters:
Name Flags
selectAlternativeName
invokeBasicName
private java.lang.invoke.LambdaForm$Name emitGuardWithCatch(int);
descriptor: (I)Ljava/lang/invoke/LambdaForm$Name;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
aaload
astore 2
start local 2 1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
iconst_1
iadd
aaload
astore 3
start local 3 2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
iload 1
iconst_2
iadd
aaload
astore 4
start local 4 3: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 5
start local 5 4: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 6
start local 6 5: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 7
start local 7 6: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 8
start local 8 7: aload 4
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
getfield java.lang.invoke.LambdaForm$NamedFunction.resolvedHandle:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 9
start local 9 8: aload 2
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
getfield java.lang.invoke.LambdaForm$NamedFunction.resolvedHandle:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
9: iconst_0
iconst_1
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
10: aload 9
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
11: astore 10
start local 10 12: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 5
aload 6
aload 7
ldc "java/lang/Throwable"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTryCatchBlock:(Ljdk/internal/org/objectweb/asm/Label;Ljdk/internal/org/objectweb/asm/Label;Ljdk/internal/org/objectweb/asm/Label;Ljava/lang/String;)V
13: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 5
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
14: aload 0
aload 3
iconst_0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
15: aload 0
aload 2
iconst_1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;I)V
16: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
ldc "java/lang/invoke/MethodHandle"
ldc "invokeBasic"
aload 10
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
17: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 6
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
18: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 167
aload 8
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILjdk/internal/org/objectweb/asm/Label;)V
19: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 7
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
20: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 89
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
21: aload 0
aload 3
iconst_1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
22: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 95
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
23: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
ldc "java/lang/Class"
ldc "isInstance"
ldc "(Ljava/lang/Object;)Z"
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
24: new jdk.internal.org.objectweb.asm.Label
dup
invokespecial jdk.internal.org.objectweb.asm.Label.<init>:()V
astore 11
start local 11 25: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 153
aload 11
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILjdk/internal/org/objectweb/asm/Label;)V
26: aload 0
aload 3
iconst_2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
27: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 95
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
28: aload 0
aload 2
iconst_1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;I)V
29: aload 10
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Throwable;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 12
start local 12 30: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
ldc "java/lang/invoke/MethodHandle"
ldc "invokeBasic"
aload 12
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
31: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 167
aload 8
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILjdk/internal/org/objectweb/asm/Label;)V
32: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 11
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
33: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 191
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
34: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 8
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLabel:(Ljdk/internal/org/objectweb/asm/Label;)V
35: aload 4
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 36 1 pos I
1 36 2 args Ljava/lang/invoke/LambdaForm$Name;
2 36 3 invoker Ljava/lang/invoke/LambdaForm$Name;
3 36 4 result Ljava/lang/invoke/LambdaForm$Name;
4 36 5 L_startBlock Ljdk/internal/org/objectweb/asm/Label;
5 36 6 L_endBlock Ljdk/internal/org/objectweb/asm/Label;
6 36 7 L_handler Ljdk/internal/org/objectweb/asm/Label;
7 36 8 L_done Ljdk/internal/org/objectweb/asm/Label;
8 36 9 returnType Ljava/lang/Class<*>;
12 36 10 type Ljava/lang/invoke/MethodType;
25 36 11 L_rethrow Ljdk/internal/org/objectweb/asm/Label;
30 36 12 catcherType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
pos
private void emitPushArguments(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArguments:(Ljava/lang/invoke/LambdaForm$Name;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 2 1 args Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
args
private void emitPushArguments(java.lang.invoke.LambdaForm$Name, int);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
istore 3
start local 3 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/invoke/LambdaForm$Name;I)V
3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
arraylength
if_icmplt 2
end local 3 5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 6 1 args Ljava/lang/invoke/LambdaForm$Name;
0 6 2 start I
1 5 3 i I
MethodParameters:
Name Flags
args
start
private void emitPushArgument(java.lang.invoke.LambdaForm$Name, int);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield java.lang.invoke.LambdaForm$Name.arguments:[Ljava/lang/Object;
iload 2
aaload
astore 3
start local 3 1: aload 1
getfield java.lang.invoke.LambdaForm$Name.function:Ljava/lang/invoke/LambdaForm$NamedFunction;
invokevirtual java.lang.invoke.LambdaForm$NamedFunction.methodType:()Ljava/lang/invoke/MethodType;
iload 2
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 4
start local 4 2: aload 0
aload 4
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPushArgument:(Ljava/lang/Class;Ljava/lang/Object;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 4 1 name Ljava/lang/invoke/LambdaForm$Name;
0 4 2 paramIndex I
1 4 3 arg Ljava/lang/Object;
2 4 4 ptype Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
paramIndex
private void emitPushArgument(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
astore 3
start local 3 1: aload 2
instanceof java.lang.invoke.LambdaForm$Name
ifeq 6
2: aload 2
checkcast java.lang.invoke.LambdaForm$Name
astore 4
start local 4 3: aload 0
aload 4
getfield java.lang.invoke.LambdaForm$Name.type:Ljava/lang/invoke/LambdaForm$BasicType;
aload 4
invokevirtual java.lang.invoke.LambdaForm$Name.index:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitLoadInsn:(Ljava/lang/invoke/LambdaForm$BasicType;I)V
4: aload 0
aload 4
getfield java.lang.invoke.LambdaForm$Name.type:Ljava/lang/invoke/LambdaForm$BasicType;
aload 1
aload 4
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitImplicitConversion:(Ljava/lang/invoke/LambdaForm$BasicType;Ljava/lang/Class;Ljava/lang/Object;)V
end local 4 5: goto 15
StackMap locals: java.lang.invoke.LambdaForm$BasicType
StackMap stack:
6: aload 2
ifnull 7
aload 2
instanceof java.lang.String
ifeq 10
StackMap locals:
StackMap stack:
7: aload 3
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpne 10
8: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitConst:(Ljava/lang/Object;)V
9: goto 15
10: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic sun.invoke.util.Wrapper.isWrapperType:(Ljava/lang/Class;)Z
ifeq 13
aload 3
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpeq 13
11: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitConst:(Ljava/lang/Object;)V
12: goto 15
13: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.constantPlaceholder:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
14: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
aload 1
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitImplicitConversion:(Ljava/lang/invoke/LambdaForm$BasicType;Ljava/lang/Class;Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 16 1 ptype Ljava/lang/Class<*>;
0 16 2 arg Ljava/lang/Object;
1 16 3 bptype Ljava/lang/invoke/LambdaForm$BasicType;
3 5 4 n Ljava/lang/invoke/LambdaForm$Name;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)V
MethodParameters:
Name Flags
ptype
arg
private void emitStoreResult(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
getfield java.lang.invoke.LambdaForm$Name.type:Ljava/lang/invoke/LambdaForm$BasicType;
getstatic java.lang.invoke.LambdaForm$BasicType.V_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpeq 2
1: aload 0
aload 1
getfield java.lang.invoke.LambdaForm$Name.type:Ljava/lang/invoke/LambdaForm$BasicType;
aload 1
invokevirtual java.lang.invoke.LambdaForm$Name.index:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitStoreInsn:(Ljava/lang/invoke/LambdaForm$BasicType;I)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 3 1 name Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
name
private void emitReturn(java.lang.invoke.LambdaForm$Name);
descriptor: (Ljava/lang/invoke/LambdaForm$Name;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 2
start local 2 1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
invokevirtual java.lang.invoke.LambdaForm.returnType:()Ljava/lang/invoke/LambdaForm$BasicType;
astore 3
start local 3 2: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 3
aload 3
aload 2
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: java.lang.Class java.lang.invoke.LambdaForm$BasicType
StackMap stack:
aload 3
getstatic java.lang.invoke.LambdaForm$BasicType.V_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
if_acmpne 6
4: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 177
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
5: goto 11
6: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.names:[Ljava/lang/invoke/LambdaForm$Name;
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.result:I
aaload
astore 4
start local 4 7: aload 4
aload 1
if_acmpeq 9
8: aload 0
aload 3
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.lambdaForm:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.result:I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitLoadInsn:(Ljava/lang/invoke/LambdaForm$BasicType;I)V
9: StackMap locals: java.lang.invoke.LambdaForm$Name
StackMap stack:
aload 0
aload 3
aload 2
aload 4
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitImplicitConversion:(Ljava/lang/invoke/LambdaForm$BasicType;Ljava/lang/Class;Ljava/lang/Object;)V
10: aload 0
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReturnInsn:(Ljava/lang/invoke/LambdaForm$BasicType;)V
end local 4 11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 12 1 onStack Ljava/lang/invoke/LambdaForm$Name;
1 12 2 rclass Ljava/lang/Class<*>;
2 12 3 rtype Ljava/lang/invoke/LambdaForm$BasicType;
7 11 4 rn Ljava/lang/invoke/LambdaForm$Name;
MethodParameters:
Name Flags
onStack
private void emitPrimCast(sun.invoke.util.Wrapper, sun.invoke.util.Wrapper);
descriptor: (Lsun/invoke/util/Wrapper;Lsun/invoke/util/Wrapper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
if_acmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.invoke.util.Wrapper.isSubwordOrInt:()Z
ifeq 5
3: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitI2X:(Lsun/invoke/util/Wrapper;)V
4: goto 30
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.invoke.util.Wrapper.isSubwordOrInt:()Z
ifeq 10
6: aload 0
aload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitX2I:(Lsun/invoke/util/Wrapper;)V
7: aload 2
invokevirtual sun.invoke.util.Wrapper.bitWidth:()I
bipush 32
if_icmpge 30
8: aload 0
aload 2
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitI2X:(Lsun/invoke/util/Wrapper;)V
9: goto 30
10: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 11: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 1
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 6 - 8
6: 12
7: 17
8: 22
default: 27
}
12: StackMap locals: int
StackMap stack:
invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 2
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 7 - 8
7: 13
8: 14
default: 15
}
13: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 137
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 28
14: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 138
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 28
15: StackMap locals:
StackMap stack:
iconst_1
istore 3
16: goto 28
17: StackMap locals:
StackMap stack:
invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 2
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 6 - 8
6: 18
7: 20
8: 19
default: 20
}
18: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 140
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 28
19: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 141
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 28
20: StackMap locals:
StackMap stack:
iconst_1
istore 3
21: goto 28
22: StackMap locals:
StackMap stack:
invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 2
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 6 - 7
6: 23
7: 24
default: 25
}
23: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 143
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 28
24: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 144
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 28
25: StackMap locals:
StackMap stack:
iconst_1
istore 3
26: goto 28
27: StackMap locals:
StackMap stack:
iconst_1
istore 3
28: StackMap locals:
StackMap stack:
iload 3
ifeq 30
29: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "unhandled prim cast: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "2"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 30: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 31 1 from Lsun/invoke/util/Wrapper;
0 31 2 to Lsun/invoke/util/Wrapper;
11 30 3 error Z
MethodParameters:
Name Flags
from
to
private void emitI2X(sun.invoke.util.Wrapper);
descriptor: (Lsun/invoke/util/Wrapper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 1
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 8
2: 1
3: 2
4: 3
5: 4
6: 5
7: 6
8: 7
default: 11
}
1: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 145
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 12
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 147
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 12
3: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 146
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 12
4: StackMap locals:
StackMap stack:
goto 12
5: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 133
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 12
6: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 134
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 12
7: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 135
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 12
8: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iconst_4
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
9: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 126
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
10: goto 12
11: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unknown type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 13 1 type Lsun/invoke/util/Wrapper;
MethodParameters:
Name Flags
type
private void emitX2I(sun.invoke.util.Wrapper);
descriptor: (Lsun/invoke/util/Wrapper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 1
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 6 - 8
6: 1
7: 2
8: 3
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 136
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 5
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 139
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 5
3: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 142
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
goto 5
4: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unknown type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 6 1 type Lsun/invoke/util/Wrapper;
MethodParameters:
Name Flags
type
static java.lang.invoke.MemberName generateLambdaFormInterpreterEntryPoint(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.invoke.LambdaForm.isValidSignature:(Ljava/lang/String;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "interpret_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokestatic java.lang.invoke.LambdaForm.signatureReturn:(Ljava/lang/String;)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeChar:()C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
start local 1 2: aload 0
invokestatic java.lang.invoke.LambdaForm.signatureType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
astore 2
start local 2 3: aload 2
iconst_0
ldc Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 2
4: new java.lang.invoke.InvokerBytecodeGenerator
dup
ldc "LFI"
aload 1
aload 2
invokespecial java.lang.invoke.InvokerBytecodeGenerator.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
astore 3
start local 3 5: aload 3
aload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.generateLambdaFormInterpreterEntryPointBytes:()[B
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.loadMethod:([B)Ljava/lang/invoke/MemberName;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 sig Ljava/lang/String;
2 6 1 name Ljava/lang/String;
3 6 2 type Ljava/lang/invoke/MethodType;
5 6 3 g Ljava/lang/invoke/InvokerBytecodeGenerator;
MethodParameters:
Name Flags
sig
private byte[] generateLambdaFormInterpreterEntryPointBytes();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.classFilePrologue:()V
1: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/LambdaForm$Hidden;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/DontInline;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
3: aload 0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
4: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 189
ldc "java/lang/Object"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
5: iconst_0
istore 1
start local 1 6: goto 15
7: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
iload 1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 2
start local 2 8: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 89
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
9: aload 0
iload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
10: aload 0
aload 2
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
iload 1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitLoadInsn:(Ljava/lang/invoke/LambdaForm$BasicType;I)V
11: aload 2
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 13
12: aload 0
aload 2
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitBoxing:(Lsun/invoke/util/Wrapper;)V
13: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 83
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
end local 2 14: iinc 1 1
StackMap locals:
StackMap stack:
15: iload 1
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmplt 7
end local 1 16: aload 0
iconst_0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitAloadInsn:(I)V
17: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 180
ldc "java/lang/invoke/MethodHandle"
ldc "form"
ldc "Ljava/lang/invoke/LambdaForm;"
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitFieldInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
18: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 95
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
19: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
ldc "java/lang/invoke/LambdaForm"
ldc "interpretWithArguments"
ldc "([Ljava/lang/Object;)Ljava/lang/Object;"
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
20: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 1
start local 1 21: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 23
aload 1
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 23
22: aload 0
aload 1
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitUnboxing:(Lsun/invoke/util/Wrapper;)V
23: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.Class
StackMap stack:
aload 0
aload 1
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReturnInsn:(Ljava/lang/invoke/LambdaForm$BasicType;)V
24: aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.classFileEpilogue:()V
25: aload 0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.invokerType:Ljava/lang/invoke/MethodType;
aastore
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.bogusMethod:([Ljava/lang/Object;)V
26: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
astore 2
start local 2 27: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.className:Ljava/lang/String;
aload 2
invokestatic java.lang.invoke.InvokerBytecodeGenerator.maybeDump:(Ljava/lang/String;[B)V
28: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
6 16 1 i I
8 14 2 ptype Ljava/lang/Class<*>;
21 29 1 rtype Ljava/lang/Class<*>;
27 29 2 classFile [B
static java.lang.invoke.MemberName generateNamedFunctionInvoker(java.lang.invoke.MethodTypeForm);
descriptor: (Ljava/lang/invoke/MethodTypeForm;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: getstatic java.lang.invoke.LambdaForm$NamedFunction.INVOKER_METHOD_TYPE:Ljava/lang/invoke/MethodType;
astore 1
start local 1 1: new java.lang.StringBuilder
dup
ldc "invoke_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.invoke.MethodTypeForm.erasedType:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.LambdaForm.basicTypeSignature:(Ljava/lang/invoke/MethodType;)Ljava/lang/String;
invokestatic java.lang.invoke.LambdaForm.shortenSignature:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 2: new java.lang.invoke.InvokerBytecodeGenerator
dup
ldc "NFI"
aload 2
aload 1
invokespecial java.lang.invoke.InvokerBytecodeGenerator.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
astore 3
start local 3 3: aload 3
aload 3
aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.generateNamedFunctionInvokerImpl:(Ljava/lang/invoke/MethodTypeForm;)[B
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.loadMethod:([B)Ljava/lang/invoke/MemberName;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 typeForm Ljava/lang/invoke/MethodTypeForm;
1 4 1 invokerType Ljava/lang/invoke/MethodType;
2 4 2 invokerName Ljava/lang/String;
3 4 3 g Ljava/lang/invoke/InvokerBytecodeGenerator;
MethodParameters:
Name Flags
typeForm
private byte[] generateNamedFunctionInvokerImpl(java.lang.invoke.MethodTypeForm);
descriptor: (Ljava/lang/invoke/MethodTypeForm;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.invoke.MethodTypeForm.erasedType:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 1: aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.classFilePrologue:()V
2: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/LambdaForm$Hidden;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
3: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
ldc "Ljava/lang/invoke/ForceInline;"
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
pop
4: aload 0
iconst_0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitAloadInsn:(I)V
5: iconst_0
istore 3
start local 3 6: goto 20
7: StackMap locals: java.lang.invoke.MethodType int
StackMap stack:
aload 0
iconst_1
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitAloadInsn:(I)V
8: aload 0
iload 3
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitIconstInsn:(I)V
9: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 50
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
10: aload 2
iload 3
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 4
start local 4 11: aload 4
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 19
12: aload 2
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.wrap:()Ljava/lang/invoke/MethodType;
iload 3
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
pop
13: aload 4
invokestatic sun.invoke.util.Wrapper.forBasicType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
astore 5
start local 5 14: aload 5
invokevirtual sun.invoke.util.Wrapper.isSubwordOrInt:()Z
ifeq 15
getstatic sun.invoke.util.Wrapper.INT:Lsun/invoke/util/Wrapper;
goto 16
StackMap locals: java.lang.Class sun.invoke.util.Wrapper
StackMap stack:
15: aload 5
StackMap locals:
StackMap stack: sun.invoke.util.Wrapper
16: astore 6
start local 6 17: aload 0
aload 6
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitUnboxing:(Lsun/invoke/util/Wrapper;)V
18: aload 0
aload 6
aload 5
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPrimCast:(Lsun/invoke/util/Wrapper;Lsun/invoke/util/Wrapper;)V
end local 6 end local 5 end local 4 19: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
20: iload 3
aload 2
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmplt 7
end local 3 21: aload 2
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
astore 3
start local 3 22: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 182
ldc "java/lang/invoke/MethodHandle"
ldc "invokeBasic"
aload 3
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
23: aload 2
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 24: aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 31
aload 4
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 31
25: aload 4
invokestatic sun.invoke.util.Wrapper.forBasicType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
astore 5
start local 5 26: aload 5
invokevirtual sun.invoke.util.Wrapper.isSubwordOrInt:()Z
ifeq 27
getstatic sun.invoke.util.Wrapper.INT:Lsun/invoke/util/Wrapper;
goto 28
StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.invoke.MethodTypeForm java.lang.invoke.MethodType java.lang.String java.lang.Class sun.invoke.util.Wrapper
StackMap stack:
27: aload 5
StackMap locals:
StackMap stack: sun.invoke.util.Wrapper
28: astore 6
start local 6 29: aload 0
aload 5
aload 6
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitPrimCast:(Lsun/invoke/util/Wrapper;Lsun/invoke/util/Wrapper;)V
30: aload 0
aload 6
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitBoxing:(Lsun/invoke/util/Wrapper;)V
end local 6 end local 5 31: StackMap locals:
StackMap stack:
aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 33
32: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iconst_1
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
33: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.emitReturnInsn:(Ljava/lang/invoke/LambdaForm$BasicType;)V
34: aload 0
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.classFileEpilogue:()V
35: aload 0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual java.lang.invoke.InvokerBytecodeGenerator.bogusMethod:([Ljava/lang/Object;)V
36: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
astore 5
start local 5 37: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.className:Ljava/lang/String;
aload 5
invokestatic java.lang.invoke.InvokerBytecodeGenerator.maybeDump:(Ljava/lang/String;[B)V
38: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 39 1 typeForm Ljava/lang/invoke/MethodTypeForm;
1 39 2 dstType Ljava/lang/invoke/MethodType;
6 21 3 i I
11 19 4 dptype Ljava/lang/Class<*>;
14 19 5 dstWrapper Lsun/invoke/util/Wrapper;
17 19 6 srcWrapper Lsun/invoke/util/Wrapper;
22 39 3 targetDesc Ljava/lang/String;
24 39 4 rtype Ljava/lang/Class<*>;
26 31 5 srcWrapper Lsun/invoke/util/Wrapper;
29 31 6 dstWrapper Lsun/invoke/util/Wrapper;
37 39 5 classFile [B
MethodParameters:
Name Flags
typeForm
private void bogusMethod(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: getstatic java.lang.invoke.MethodHandleStatics.DUMP_CLASS_FILES:Z
ifeq 11
1: aload 0
aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.cw:Ljdk/internal/org/objectweb/asm/ClassWriter;
bipush 8
ldc "dummy"
ldc "()V"
aconst_null
aconst_null
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
putfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
2: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.Object[] top int int java.lang.Object[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
aload 2
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
5: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
bipush 87
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
end local 2 6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 3
8: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
sipush 177
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
9: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
iconst_0
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
10: aload 0
getfield java.lang.invoke.InvokerBytecodeGenerator.mv:Ljdk/internal/org/objectweb/asm/MethodVisitor;
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
11: StackMap locals: java.lang.invoke.InvokerBytecodeGenerator java.lang.Object[]
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/lang/invoke/InvokerBytecodeGenerator;
0 12 1 os [Ljava/lang/Object;
4 6 2 o Ljava/lang/Object;
MethodParameters:
Name Flags
os
static int[] $SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.invoke.LambdaForm$BasicType.values:()[Ljava/lang/invoke/LambdaForm$BasicType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.D_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iconst_5
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.F_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iconst_4
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.I_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.J_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.V_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.ordinal:()I
bipush 6
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$LambdaForm$BasicType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
static int[] $SWITCH_TABLE$sun$invoke$util$Wrapper();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic sun.invoke.util.Wrapper.values:()[Lsun/invoke/util/Wrapper;
arraylength
newarray 10
astore 0
2: aload 0
getstatic sun.invoke.util.Wrapper.BOOLEAN:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic sun.invoke.util.Wrapper.BYTE:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic sun.invoke.util.Wrapper.CHAR:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic sun.invoke.util.Wrapper.DOUBLE:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 8
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic sun.invoke.util.Wrapper.FLOAT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 7
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic sun.invoke.util.Wrapper.INT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic sun.invoke.util.Wrapper.LONG:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 6
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 9
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic sun.invoke.util.Wrapper.SHORT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_3
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic sun.invoke.util.Wrapper.VOID:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 10
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
dup
putstatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
static int[] $SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$Intrinsic();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$Intrinsic:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.invoke.MethodHandleImpl$Intrinsic.values:()[Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ARRAY_LOAD:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
iconst_4
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ARRAY_STORE:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
iconst_5
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.GUARD_WITH_CATCH:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.IDENTITY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
bipush 6
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.NEW_ARRAY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
iconst_3
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.NONE:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
bipush 8
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.SELECT_ALTERNATIVE:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
iconst_1
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ZERO:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokevirtual java.lang.invoke.MethodHandleImpl$Intrinsic.ordinal:()I
bipush 7
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
dup
putstatic java.lang.invoke.InvokerBytecodeGenerator.$SWITCH_TABLE$java$lang$invoke$MethodHandleImpl$Intrinsic:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
}
SourceFile: "InvokerBytecodeGenerator.java"
NestMembers:
java.lang.invoke.InvokerBytecodeGenerator$1 java.lang.invoke.InvokerBytecodeGenerator$CpPatch
InnerClasses:
java.lang.invoke.InvokerBytecodeGenerator$1
CpPatch = java.lang.invoke.InvokerBytecodeGenerator$CpPatch of java.lang.invoke.InvokerBytecodeGenerator
final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm
final Name = java.lang.invoke.LambdaForm$Name of java.lang.invoke.LambdaForm
NamedFunction = java.lang.invoke.LambdaForm$NamedFunction of java.lang.invoke.LambdaForm
Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName
final Intrinsic = java.lang.invoke.MethodHandleImpl$Intrinsic of java.lang.invoke.MethodHandleImpl