class java.lang.invoke.Invokers
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.lang.invoke.Invokers
super_class: java.lang.Object
{
private final java.lang.invoke.MethodType targetType;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodHandle[] invokers;
descriptor: [Ljava/lang/invoke/MethodHandle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Stable()
static final int INV_EXACT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int INV_GENERIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int INV_BASIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int INV_LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int MH_LINKER_ARG_APPENDED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final byte NF_checkExactType;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final byte NF_checkGenericType;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final byte NF_getCallSiteTarget;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final byte NF_checkCustomized;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final byte NF_checkVarHandleGenericType;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final byte NF_checkVarHandleExactType;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final byte NF_LIMIT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final java.lang.invoke.LambdaForm$NamedFunction[] NFS;
descriptor: [Ljava/lang/invoke/LambdaForm$NamedFunction;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Stable()
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljava/lang/invoke/Invokers;
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.Invokers.$assertionsDisabled:Z
3: bipush 6
anewarray java.lang.invoke.LambdaForm$NamedFunction
putstatic java.lang.invoke.Invokers.NFS:[Ljava/lang/invoke/LambdaForm$NamedFunction;
4: getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
ldc Ljava/lang/invoke/Invokers$Holder;
invokevirtual jdk.internal.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
5: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_3
anewarray java.lang.invoke.MethodHandle
putfield java.lang.invoke.Invokers.invokers:[Ljava/lang/invoke/MethodHandle;
2: aload 0
aload 1
putfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/Invokers;
0 4 1 targetType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
targetType
java.lang.invoke.MethodHandle exactInvoker();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual java.lang.invoke.Invokers.cachedInvoker:(I)Ljava/lang/invoke/MethodHandle;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
areturn
2: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
iconst_1
invokevirtual java.lang.invoke.Invokers.makeExactOrGeneralInvoker:(Z)Ljava/lang/invoke/MethodHandle;
astore 1
3: aload 0
iconst_0
aload 1
invokevirtual java.lang.invoke.Invokers.setCachedInvoker:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/Invokers;
1 4 1 invoker Ljava/lang/invoke/MethodHandle;
java.lang.invoke.MethodHandle genericInvoker();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.lang.invoke.Invokers.cachedInvoker:(I)Ljava/lang/invoke/MethodHandle;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
areturn
2: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
iconst_0
invokevirtual java.lang.invoke.Invokers.makeExactOrGeneralInvoker:(Z)Ljava/lang/invoke/MethodHandle;
astore 1
3: aload 0
iconst_1
aload 1
invokevirtual java.lang.invoke.Invokers.setCachedInvoker:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/Invokers;
1 4 1 invoker Ljava/lang/invoke/MethodHandle;
java.lang.invoke.MethodHandle basicInvoker();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
iconst_2
invokevirtual java.lang.invoke.Invokers.cachedInvoker:(I)Ljava/lang/invoke/MethodHandle;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
areturn
2: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 3: aload 2
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
if_acmpeq 5
4: aload 0
iconst_2
aload 2
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
invokevirtual java.lang.invoke.Invokers.basicInvoker:()Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.Invokers.setCachedInvoker:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
5: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
iconst_0
invokevirtual java.lang.invoke.MethodTypeForm.cachedMethodHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 1
6: aload 1
ifnonnull 11
7: aload 2
invokestatic java.lang.invoke.Invokers.invokeBasicMethod:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
astore 3
start local 3 8: aload 3
invokestatic java.lang.invoke.DirectMethodHandle.make:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/DirectMethodHandle;
astore 1
9: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 10
aload 0
aload 1
invokevirtual java.lang.invoke.Invokers.checkInvoker:(Ljava/lang/invoke/MethodHandle;)Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals: java.lang.invoke.MemberName
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
iconst_0
aload 1
invokevirtual java.lang.invoke.MethodTypeForm.setCachedMethodHandle:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 1
end local 3 11: StackMap locals:
StackMap stack:
aload 0
iconst_2
aload 1
invokevirtual java.lang.invoke.Invokers.setCachedInvoker:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/lang/invoke/Invokers;
1 12 1 invoker Ljava/lang/invoke/MethodHandle;
3 12 2 basicType Ljava/lang/invoke/MethodType;
8 11 3 method Ljava/lang/invoke/MemberName;
java.lang.invoke.MethodHandle varHandleMethodInvoker(java.lang.invoke.VarHandle$AccessMode);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
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.Invokers.makeVarHandleMethodInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;Z)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/Invokers;
0 1 1 ak Ljava/lang/invoke/VarHandle$AccessMode;
MethodParameters:
Name Flags
ak
java.lang.invoke.MethodHandle varHandleMethodExactInvoker(java.lang.invoke.VarHandle$AccessMode);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual java.lang.invoke.Invokers.makeVarHandleMethodInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;Z)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/Invokers;
0 1 1 ak Ljava/lang/invoke/VarHandle$AccessMode;
MethodParameters:
Name Flags
ak
private java.lang.invoke.MethodHandle cachedInvoker(int);
descriptor: (I)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.Invokers.invokers:[Ljava/lang/invoke/MethodHandle;
iload 1
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/Invokers;
0 1 1 idx I
MethodParameters:
Name Flags
idx
private synchronized java.lang.invoke.MethodHandle setCachedInvoker(int, java.lang.invoke.MethodHandle);
descriptor: (ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.lang.invoke.Invokers.invokers:[Ljava/lang/invoke/MethodHandle;
iload 1
aaload
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
areturn
2: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
getfield java.lang.invoke.Invokers.invokers:[Ljava/lang/invoke/MethodHandle;
iload 1
aload 2
dup_x2
aastore
areturn
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/Invokers;
0 3 1 idx I
0 3 2 invoker Ljava/lang/invoke/MethodHandle;
1 3 3 prev Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
idx
invoker final
private java.lang.invoke.MethodHandle makeExactOrGeneralInvoker(boolean);
descriptor: (Z)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: iload 1
ifeq 3
bipush 11
goto 4
StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
StackMap stack:
3: bipush 13
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: aload 2
iconst_0
iload 4
invokestatic java.lang.invoke.Invokers.invokeHandleForm:(Ljava/lang/invoke/MethodType;ZI)Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 6: aload 3
aload 5
aload 2
invokestatic java.lang.invoke.BoundMethodHandle.bindSingle:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 6
start local 6 7: iload 1
ifeq 8
ldc "invokeExact"
goto 9
StackMap locals: int java.lang.invoke.LambdaForm java.lang.invoke.MethodHandle
StackMap stack:
8: ldc "invoke"
StackMap locals:
StackMap stack: java.lang.String
9: astore 7
start local 7 10: aload 6
aload 7
aload 2
invokestatic java.lang.invoke.MemberName.makeMethodHandleInvoke:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
iconst_0
invokevirtual java.lang.invoke.MethodHandle.withInternalMemberName:(Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
astore 6
11: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 12
aload 0
aload 6
invokevirtual java.lang.invoke.Invokers.checkInvoker:(Ljava/lang/invoke/MethodHandle;)Z
ifne 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 6
invokevirtual java.lang.invoke.Invokers.maybeCompileToBytecode:(Ljava/lang/invoke/MethodHandle;)V
13: aload 6
areturn
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 14 0 this Ljava/lang/invoke/Invokers;
0 14 1 isExact Z
1 14 2 mtype Ljava/lang/invoke/MethodType;
2 14 3 invokerType Ljava/lang/invoke/MethodType;
5 14 4 which I
6 14 5 lform Ljava/lang/invoke/LambdaForm;
7 14 6 invoker Ljava/lang/invoke/MethodHandle;
10 14 7 whichName Ljava/lang/String;
MethodParameters:
Name Flags
isExact
private java.lang.invoke.MethodHandle makeVarHandleMethodInvoker(java.lang.invoke.VarHandle$AccessMode, boolean);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Z)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 3
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/VarHandle;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 1
aload 3
iload 2
invokestatic java.lang.invoke.Invokers.varHandleMethodInvokerHandleForm:(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 3: new java.lang.invoke.VarHandle$AccessDescriptor
dup
aload 3
aload 1
getfield java.lang.invoke.VarHandle$AccessMode.at:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
aload 1
invokevirtual java.lang.invoke.VarHandle$AccessMode.ordinal:()I
invokespecial java.lang.invoke.VarHandle$AccessDescriptor.<init>:(Ljava/lang/invoke/MethodType;II)V
astore 6
start local 6 4: aload 4
aload 5
aload 6
invokestatic java.lang.invoke.BoundMethodHandle.bindSingle:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 7
start local 7 5: aload 7
aload 1
invokevirtual java.lang.invoke.VarHandle$AccessMode.methodName:()Ljava/lang/String;
aload 3
invokestatic java.lang.invoke.MemberName.makeVarHandleMethodInvoke:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
iconst_0
invokevirtual java.lang.invoke.MethodHandle.withInternalMemberName:(Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
astore 7
6: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 7
aload 0
aload 7
invokevirtual java.lang.invoke.Invokers.checkVarHandleInvoker:(Ljava/lang/invoke/MethodHandle;)Z
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: java.lang.invoke.Invokers java.lang.invoke.VarHandle$AccessMode int java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.LambdaForm java.lang.invoke.VarHandle$AccessDescriptor java.lang.invoke.MethodHandle
StackMap stack:
aload 0
aload 7
invokevirtual java.lang.invoke.Invokers.maybeCompileToBytecode:(Ljava/lang/invoke/MethodHandle;)V
8: aload 7
areturn
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 9 0 this Ljava/lang/invoke/Invokers;
0 9 1 ak Ljava/lang/invoke/VarHandle$AccessMode;
0 9 2 isExact Z
1 9 3 mtype Ljava/lang/invoke/MethodType;
2 9 4 invokerType Ljava/lang/invoke/MethodType;
3 9 5 lform Ljava/lang/invoke/LambdaForm;
4 9 6 ad Ljava/lang/invoke/VarHandle$AccessDescriptor;
5 9 7 invoker Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
ak
isExact
private void maybeCompileToBytecode(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.erase:()Ljava/lang/invoke/MethodType;
if_acmpne 3
1: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
bipush 10
if_icmpge 3
2: aload 1
getfield java.lang.invoke.MethodHandle.form:Ljava/lang/invoke/LambdaForm;
invokevirtual java.lang.invoke.LambdaForm.compileToBytecode:()V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/Invokers;
0 4 1 invoker Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
invoker
static java.lang.invoke.MemberName invokeBasicMethod(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 1
aload 0
aload 0
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
iconst_5
ldc Ljava/lang/invoke/MethodHandle;
ldc "invokeBasic"
aload 0
invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 1
start local 1 4: new java.lang.StringBuilder
dup
ldc "JVM cannot find invoker for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/InternalError;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 basicType Ljava/lang/invoke/MethodType;
4 5 1 ex Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
1 2 3 Class java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
basicType
private boolean checkInvoker(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 2
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
aastore
dup
iconst_1
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
aastore
dup
iconst_2
aload 1
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 4
aload 1
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
ifnull 4
3: aload 1
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 5
aload 1
invokevirtual java.lang.invoke.MethodHandle.isVarargsCollector:()Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/invoke/Invokers;
0 6 1 invoker Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
invoker
private boolean checkVarHandleInvoker(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/VarHandle;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 2
start local 2 1: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 3
aload 2
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
ifne 3
new java.lang.AssertionError
dup
iconst_3
anewarray java.lang.Object
dup
iconst_0
2: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 1
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 5
aload 1
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
ifnull 5
4: aload 1
invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 6
aload 1
invokevirtual java.lang.invoke.MethodHandle.isVarargsCollector:()Z
ifeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/Invokers;
0 7 1 invoker Ljava/lang/invoke/MethodHandle;
1 7 2 invokerType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
invoker
java.lang.invoke.MethodHandle spreadInvoker(int);
descriptor: (I)Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iload 1
isub
istore 2
start local 2 1: aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 3
iload 1
invokestatic java.lang.invoke.Invokers.impliedRestargType:(Ljava/lang/invoke/MethodType;I)Ljava/lang/Class;
astore 4
start local 4 3: aload 3
invokevirtual java.lang.invoke.MethodType.parameterSlotCount:()I
sipush 253
if_icmpgt 5
4: aload 0
invokevirtual java.lang.invoke.Invokers.genericInvoker:()Ljava/lang/invoke/MethodHandle;
aload 4
iload 2
invokevirtual java.lang.invoke.MethodHandle.asSpreader:(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
areturn
5: StackMap locals: int java.lang.invoke.MethodType java.lang.Class
StackMap stack:
aload 3
6: iload 1
aload 3
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.invoke.MethodType.replaceParameterTypes:(II[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
7: astore 5
start local 5 8: aload 5
invokestatic java.lang.invoke.MethodHandles.invoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 9: getstatic java.lang.invoke.Invokers$Lazy.MH_asSpreader:Ljava/lang/invoke/MethodHandle;
iconst_1
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 10: aload 6
iconst_0
aload 7
invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
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 11 0 this Ljava/lang/invoke/Invokers;
0 11 1 leadingArgCount I
1 11 2 spreadArgCount I
2 11 3 postSpreadType Ljava/lang/invoke/MethodType;
3 11 4 argArrayType Ljava/lang/Class<*>;
8 11 5 preSpreadType Ljava/lang/invoke/MethodType;
9 11 6 arrayInvoker Ljava/lang/invoke/MethodHandle;
10 11 7 makeSpreader Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
leadingArgCount
private static java.lang.Class<?> impliedRestargType(java.lang.invoke.MethodType, int);
descriptor: (Ljava/lang/invoke/MethodType;I)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodType.isGeneric:()Z
ifeq 1
ldc [Ljava/lang/Object;
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 2
start local 2 2: iload 1
iload 2
if_icmplt 3
ldc [Ljava/lang/Object;
areturn
3: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 3
start local 3 4: iload 1
iconst_1
iadd
istore 4
start local 4 5: goto 9
6: StackMap locals: java.lang.Class int
StackMap stack:
aload 3
aload 0
iload 4
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 8
7: ldc "need homogeneous rest arguments"
aload 0
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 2
if_icmplt 6
end local 4 10: aload 3
ldc Ljava/lang/Object;
if_acmpne 11
ldc [Ljava/lang/Object;
areturn
11: StackMap locals:
StackMap stack:
aload 3
iconst_0
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 restargType Ljava/lang/invoke/MethodType;
0 12 1 fromPos I
2 12 2 maxPos I
4 12 3 argType Ljava/lang/Class<*>;
5 10 4 i I
Signature: (Ljava/lang/invoke/MethodType;I)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
restargType
fromPos
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Invokers"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.lang.invoke.Invokers.targetType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/Invokers;
static java.lang.invoke.MemberName methodHandleInvokeLinkerMethod(java.lang.String, java.lang.invoke.MethodType, java.lang.Object[]);
descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
-1183693704: 1
941760871: 2
default: 7
}
StackMap locals: java.lang.String java.lang.invoke.MethodType java.lang.Object[] top java.lang.String
StackMap stack:
1: aload 4
ldc "invoke"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
goto 7
StackMap locals:
StackMap stack:
2: aload 4
ldc "invokeExact"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
goto 7
3: StackMap locals:
StackMap stack:
bipush 10
istore 3
start local 3 4: goto 8
end local 3 5: StackMap locals:
StackMap stack:
bipush 12
istore 3
start local 3 6: goto 8
end local 3 7: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "not invoker: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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
start local 3 8: StackMap locals: java.lang.String java.lang.invoke.MethodType java.lang.Object[] int
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodType.parameterSlotCount:()I
sipush 253
if_icmpgt 12
9: aload 1
iconst_0
iload 3
invokestatic java.lang.invoke.Invokers.invokeHandleForm:(Ljava/lang/invoke/MethodType;ZI)Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 10: aload 2
iconst_0
aload 1
aastore
11: goto 13
end local 5 12: StackMap locals:
StackMap stack:
aload 1
iconst_1
iload 3
invokestatic java.lang.invoke.Invokers.invokeHandleForm:(Ljava/lang/invoke/MethodType;ZI)Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 13: StackMap locals: java.lang.String java.lang.invoke.MethodType java.lang.Object[] int top java.lang.invoke.LambdaForm
StackMap stack:
aload 5
getfield java.lang.invoke.LambdaForm.vmentry:Ljava/lang/invoke/MemberName;
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 name Ljava/lang/String;
0 14 1 mtype Ljava/lang/invoke/MethodType;
0 14 2 appendixResult [Ljava/lang/Object;
4 5 3 which I
6 7 3 which I
8 14 3 which I
10 12 5 lform Ljava/lang/invoke/LambdaForm;
13 14 5 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
name
mtype
appendixResult
static java.lang.invoke.LambdaForm invokeHandleForm(java.lang.invoke.MethodType, boolean, int);
descriptor: (Ljava/lang/invoke/MethodType;ZI)Ljava/lang/invoke/LambdaForm;
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=22, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifne 4
1: aload 0
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
astore 0
2: iconst_1
istore 3
start local 3 3: goto 5
end local 3 4: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 5: StackMap locals: int
StackMap stack:
iload 2
tableswitch { // 10 - 13
10: 6
11: 10
12: 14
13: 18
default: 22
}
6: StackMap locals:
StackMap stack:
iconst_1
istore 4
start local 4 7: iconst_0
istore 5
start local 5 8: getstatic java.lang.invoke.LambdaForm$Kind.EXACT_LINKER:Ljava/lang/invoke/LambdaForm$Kind;
astore 6
start local 6 9: goto 23
end local 6 end local 5 end local 4 10: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 11: iconst_0
istore 5
start local 5 12: getstatic java.lang.invoke.LambdaForm$Kind.EXACT_INVOKER:Ljava/lang/invoke/LambdaForm$Kind;
astore 6
start local 6 13: goto 23
end local 6 end local 5 end local 4 14: StackMap locals:
StackMap stack:
iconst_1
istore 4
start local 4 15: iconst_1
istore 5
start local 5 16: getstatic java.lang.invoke.LambdaForm$Kind.GENERIC_LINKER:Ljava/lang/invoke/LambdaForm$Kind;
astore 6
start local 6 17: goto 23
end local 6 end local 5 end local 4 18: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 19: iconst_1
istore 5
start local 5 20: getstatic java.lang.invoke.LambdaForm$Kind.GENERIC_INVOKER:Ljava/lang/invoke/LambdaForm$Kind;
astore 6
start local 6 21: goto 23
end local 6 end local 5 end local 4 22: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
start local 4 start local 5 start local 6 23: StackMap locals: int int java.lang.invoke.LambdaForm$Kind
StackMap stack:
iload 3
ifeq 26
24: aload 0
invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
iload 2
invokevirtual java.lang.invoke.MethodTypeForm.cachedLambdaForm:(I)Ljava/lang/invoke/LambdaForm;
astore 7
start local 7 25: aload 7
ifnull 26
aload 7
areturn
end local 7 26: StackMap locals:
StackMap stack:
iconst_0
iload 4
ifeq 27
iconst_0
goto 28
StackMap locals:
StackMap stack: int
27: iconst_1
StackMap locals: java.lang.invoke.MethodType int int int int int java.lang.invoke.LambdaForm$Kind
StackMap stack: int int
28: iadd
istore 8
start local 8 29: iload 8
iconst_1
iadd
istore 9
start local 9 30: iload 9
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iadd
istore 10
start local 10 31: iload 10
iload 4
ifeq 32
iload 1
ifne 32
iconst_1
goto 33
StackMap locals: java.lang.invoke.MethodType int int int int int java.lang.invoke.LambdaForm$Kind top int int int
StackMap stack: int
32: iconst_0
StackMap locals: java.lang.invoke.MethodType int int int int int java.lang.invoke.LambdaForm$Kind top int int int
StackMap stack: int int
33: iadd
istore 11
start local 11 34: iload 10
istore 12
start local 12 35: iload 1
ifeq 36
iconst_m1
goto 37
StackMap locals: int int
StackMap stack:
36: iload 12
iinc 12 1
StackMap locals:
StackMap stack: int
37: istore 13
start local 13 38: iload 12
iinc 12 1
istore 14
start local 14 39: getstatic java.lang.invoke.MethodHandleStatics.CUSTOMIZE_THRESHOLD:I
iflt 40
iload 12
iinc 12 1
goto 41
StackMap locals: int int
StackMap stack:
40: iconst_m1
StackMap locals:
StackMap stack: int
41: istore 15
start local 15 42: iload 12
iinc 12 1
istore 16
start local 16 43: aload 0
invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
astore 17
start local 17 44: iload 4
ifeq 48
45: iload 1
ifne 49
46: aload 17
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/MemberName;
aastore
invokevirtual java.lang.invoke.MethodType.appendParameterTypes:([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 17
47: goto 49
48: StackMap locals: int int java.lang.invoke.MethodType
StackMap stack:
aload 17
invokevirtual java.lang.invoke.MethodType.invokerType:()Ljava/lang/invoke/MethodType;
astore 17
49: StackMap locals:
StackMap stack:
iload 12
iload 11
isub
aload 17
invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
astore 18
start local 18 50: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 52
aload 18
arraylength
iload 12
if_icmpeq 52
new java.lang.AssertionError
dup
iconst_5
anewarray java.io.Serializable
dup
iconst_0
51: aload 0
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_2
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
aload 18
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
52: StackMap locals: java.lang.invoke.LambdaForm$Name[]
StackMap stack:
iload 13
iload 11
if_icmplt 58
53: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 54
aload 18
iload 13
aaload
ifnull 54
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
54: StackMap locals:
StackMap stack:
invokestatic java.lang.invoke.BoundMethodHandle.speciesData_L:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
astore 19
start local 19 55: aload 18
iconst_0
aload 18
iconst_0
aaload
aload 19
invokevirtual java.lang.invoke.LambdaForm$Name.withConstraint:(Ljava/lang/Object;)Ljava/lang/invoke/LambdaForm$Name;
aastore
56: aload 19
iconst_0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
astore 20
start local 20 57: aload 18
iload 13
new java.lang.invoke.LambdaForm$Name
dup
aload 20
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 18
iconst_0
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
end local 20 end local 19 58: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
astore 19
start local 19 59: aload 18
iload 8
iload 10
ldc [Ljava/lang/Object;
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
astore 20
start local 20 60: iload 1
ifeq 61
aload 0
goto 62
StackMap locals: java.lang.invoke.MethodType java.lang.Object[]
StackMap stack:
61: aload 18
iload 13
aaload
StackMap locals:
StackMap stack: java.lang.Object
62: astore 21
start local 21 63: iload 5
ifne 66
64: aload 18
iload 14
new java.lang.invoke.LambdaForm$Name
dup
iconst_0
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 18
iload 8
aaload
aastore
dup
iconst_1
aload 21
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
65: goto 68
66: StackMap locals: java.lang.Object
StackMap stack:
aload 18
iload 14
new java.lang.invoke.LambdaForm$Name
dup
iconst_1
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 18
iload 8
aaload
aastore
dup
iconst_1
aload 21
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
67: aload 20
iconst_0
aload 18
iload 14
aaload
aastore
68: StackMap locals:
StackMap stack:
iload 15
iconst_m1
if_icmpeq 70
69: aload 18
iload 15
new java.lang.invoke.LambdaForm$Name
dup
iconst_3
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 20
iconst_0
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
70: StackMap locals:
StackMap stack:
aload 18
iload 16
new java.lang.invoke.LambdaForm$Name
dup
aload 19
aload 20
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)V
aastore
71: iload 1
ifeq 74
72: new java.lang.invoke.LambdaForm
dup
iload 11
aload 18
invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;)V
astore 7
start local 7 73: goto 75
end local 7 74: StackMap locals:
StackMap stack:
new java.lang.invoke.LambdaForm
dup
iload 11
aload 18
aload 6
invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Kind;)V
astore 7
start local 7 75: StackMap locals: java.lang.invoke.MethodType int int int int int java.lang.invoke.LambdaForm$Kind java.lang.invoke.LambdaForm int int int int int int int int int java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] java.lang.invoke.MethodType java.lang.Object[] java.lang.Object
StackMap stack:
iload 4
ifeq 77
76: aload 7
invokevirtual java.lang.invoke.LambdaForm.compileToBytecode:()V
77: StackMap locals:
StackMap stack:
iload 3
ifeq 79
78: aload 0
invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
iload 2
aload 7
invokevirtual java.lang.invoke.MethodTypeForm.setCachedLambdaForm:(ILjava/lang/invoke/LambdaForm;)Ljava/lang/invoke/LambdaForm;
astore 7
79: StackMap locals:
StackMap stack:
aload 7
areturn
end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 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 80 0 mtype Ljava/lang/invoke/MethodType;
0 80 1 customized Z
0 80 2 which I
3 4 3 isCached Z
5 80 3 isCached Z
7 10 4 isLinker Z
11 14 4 isLinker Z
15 18 4 isLinker Z
19 22 4 isLinker Z
23 80 4 isLinker Z
8 10 5 isGeneric Z
12 14 5 isGeneric Z
16 18 5 isGeneric Z
20 22 5 isGeneric Z
23 80 5 isGeneric Z
9 10 6 kind Ljava/lang/invoke/LambdaForm$Kind;
13 14 6 kind Ljava/lang/invoke/LambdaForm$Kind;
17 18 6 kind Ljava/lang/invoke/LambdaForm$Kind;
21 22 6 kind Ljava/lang/invoke/LambdaForm$Kind;
23 80 6 kind Ljava/lang/invoke/LambdaForm$Kind;
25 26 7 lform Ljava/lang/invoke/LambdaForm;
73 74 7 lform Ljava/lang/invoke/LambdaForm;
75 80 7 lform Ljava/lang/invoke/LambdaForm;
29 80 8 CALL_MH I
30 80 9 ARG_BASE I
31 80 10 OUTARG_LIMIT I
34 80 11 INARG_LIMIT I
35 80 12 nameCursor I
38 80 13 MTYPE_ARG I
39 80 14 CHECK_TYPE I
42 80 15 CHECK_CUSTOM I
43 80 16 LINKER_CALL I
44 80 17 invokerFormType Ljava/lang/invoke/MethodType;
50 80 18 names [Ljava/lang/invoke/LambdaForm$Name;
55 58 19 speciesData Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
57 58 20 getter Ljava/lang/invoke/LambdaForm$NamedFunction;
59 80 19 outCallType Ljava/lang/invoke/MethodType;
60 80 20 outArgs [Ljava/lang/Object;
63 80 21 mtypeArg Ljava/lang/Object;
MethodParameters:
Name Flags
mtype
customized
which
static java.lang.invoke.MemberName varHandleInvokeLinkerMethod(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.invoke.MethodType.parameterSlotCount:()I
sipush 253
if_icmpgt 3
1: aload 0
aload 1
invokestatic java.lang.invoke.Invokers.varHandleMethodGenericLinkerHandleForm:(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unsupported parameter slot count "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.invoke.MethodType.parameterSlotCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
athrow
start local 2 4: StackMap locals: java.lang.invoke.LambdaForm
StackMap stack:
aload 2
getfield java.lang.invoke.LambdaForm.vmentry:Ljava/lang/invoke/MemberName;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 ak Ljava/lang/invoke/VarHandle$AccessMode;
0 5 1 mtype Ljava/lang/invoke/MethodType;
2 3 2 lform Ljava/lang/invoke/LambdaForm;
4 5 2 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
ak
mtype
private static java.lang.invoke.LambdaForm varHandleMethodGenericLinkerHandleForm(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=13, args_size=2
start local 0 start local 1 0: iconst_1
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iadd
istore 2
start local 2 1: iload 2
istore 3
start local 3 2: iload 3
iinc 3 1
istore 4
start local 4 3: iload 3
iinc 3 1
istore 5
start local 5 4: getstatic java.lang.invoke.MethodHandleStatics.CUSTOMIZE_THRESHOLD:I
iflt 5
iload 3
iinc 3 1
goto 6
StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int
StackMap stack:
5: iconst_m1
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: iload 3
iinc 3 1
istore 7
start local 7 8: iload 7
iconst_1
iadd
anewarray java.lang.invoke.LambdaForm$Name
astore 8
start local 8 9: aload 8
iconst_0
iconst_0
ldc Ljava/lang/Object;
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokestatic java.lang.invoke.LambdaForm.argument:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm$Name;
aastore
10: iconst_0
istore 9
start local 9 11: goto 14
12: StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] int
StackMap stack:
aload 8
iconst_1
iload 9
iadd
iconst_1
iload 9
iadd
aload 1
iload 9
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;
invokestatic java.lang.invoke.LambdaForm.argument:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm$Name;
aastore
13: iinc 9 1
StackMap locals:
StackMap stack:
14: iload 9
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmplt 12
end local 9 15: aload 8
iload 4
new java.lang.invoke.LambdaForm$Name
dup
iload 2
ldc Ljava/lang/Object;
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(ILjava/lang/invoke/LambdaForm$BasicType;)V
aastore
16: aload 8
iload 5
new java.lang.invoke.LambdaForm$Name
dup
iconst_4
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 8
iconst_0
aaload
aastore
dup
iconst_1
aload 8
iload 4
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
17: iload 2
iconst_1
iadd
anewarray java.lang.Object
astore 9
start local 9 18: aload 9
iconst_0
aload 8
iload 5
aaload
aastore
19: iconst_0
istore 10
start local 10 20: goto 23
21: StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] java.lang.Object[] int
StackMap stack:
aload 9
iload 10
iconst_1
iadd
aload 8
iload 10
aaload
aastore
22: iinc 10 1
StackMap locals:
StackMap stack:
23: iload 10
iload 2
if_icmplt 21
end local 10 24: iload 6
iconst_m1
if_icmpeq 26
25: aload 8
iload 6
new java.lang.invoke.LambdaForm$Name
dup
iconst_3
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 9
iconst_0
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
26: StackMap locals:
StackMap stack:
aload 1
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/VarHandle;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
27: invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
28: astore 10
start local 10 29: aload 8
iload 7
new java.lang.invoke.LambdaForm$Name
dup
aload 10
aload 9
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)V
aastore
30: new java.lang.invoke.LambdaForm
dup
iload 2
iconst_1
iadd
aload 8
getstatic java.lang.invoke.LambdaForm$Kind.VARHANDLE_LINKER:Ljava/lang/invoke/LambdaForm$Kind;
invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Kind;)V
astore 11
start local 11 31: invokestatic java.lang.invoke.LambdaForm.debugNames:()Z
ifeq 36
32: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.invoke.VarHandle$AccessMode.methodName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":VarHandle_invoke_MT_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: aload 1
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;
34: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 12
start local 12 35: aload 11
aload 12
invokestatic java.lang.invoke.LambdaForm.associateWithDebugName:(Ljava/lang/invoke/LambdaForm;Ljava/lang/String;)V
end local 12 36: StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm
StackMap stack:
aload 11
invokevirtual java.lang.invoke.LambdaForm.compileToBytecode:()V
37: aload 11
areturn
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 38 0 ak Ljava/lang/invoke/VarHandle$AccessMode;
0 38 1 mtype Ljava/lang/invoke/MethodType;
1 38 2 ARG_LIMIT I
2 38 3 nameCursor I
3 38 4 VAD_ARG I
4 38 5 CHECK_TYPE I
7 38 6 CHECK_CUSTOM I
8 38 7 LINKER_CALL I
9 38 8 names [Ljava/lang/invoke/LambdaForm$Name;
11 15 9 i I
18 38 9 outArgs [Ljava/lang/Object;
20 24 10 i I
29 38 10 outCallType Ljava/lang/invoke/MethodType;
31 38 11 lform Ljava/lang/invoke/LambdaForm;
35 36 12 name Ljava/lang/String;
MethodParameters:
Name Flags
ak
mtype
private static java.lang.invoke.LambdaForm varHandleMethodInvokerHandleForm(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType, boolean);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=16, args_size=3
start local 0 start local 1 start local 2 0: iconst_2
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iadd
istore 3
start local 3 1: iload 3
istore 4
start local 4 2: iload 4
iinc 4 1
istore 5
start local 5 3: iload 4
iinc 4 1
istore 6
start local 6 4: iload 4
iinc 4 1
istore 7
start local 7 5: iload 7
iconst_1
iadd
anewarray java.lang.invoke.LambdaForm$Name
astore 8
start local 8 6: aload 8
iconst_0
iconst_0
ldc Ljava/lang/Object;
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokestatic java.lang.invoke.LambdaForm.argument:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm$Name;
aastore
7: aload 8
iconst_1
iconst_1
ldc Ljava/lang/Object;
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokestatic java.lang.invoke.LambdaForm.argument:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm$Name;
aastore
8: iconst_0
istore 9
start local 9 9: goto 12
10: StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] int
StackMap stack:
aload 8
iconst_2
iload 9
iadd
iconst_2
iload 9
iadd
aload 1
iload 9
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;
invokestatic java.lang.invoke.LambdaForm.argument:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm$Name;
aastore
11: iinc 9 1
StackMap locals:
StackMap stack:
12: iload 9
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmplt 10
end local 9 13: invokestatic java.lang.invoke.BoundMethodHandle.speciesData_L:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
astore 9
start local 9 14: aload 8
iconst_0
aload 8
iconst_0
aaload
aload 9
invokevirtual java.lang.invoke.LambdaForm$Name.withConstraint:(Ljava/lang/Object;)Ljava/lang/invoke/LambdaForm$Name;
aastore
15: aload 9
iconst_0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
astore 10
start local 10 16: aload 8
iload 5
new java.lang.invoke.LambdaForm$Name
dup
aload 10
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 8
iconst_0
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
17: iload 2
ifeq 20
18: aload 8
iload 6
new java.lang.invoke.LambdaForm$Name
dup
iconst_5
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 8
iconst_1
aaload
aastore
dup
iconst_1
aload 8
iload 5
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
19: goto 21
20: StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] java.lang.invoke.BoundMethodHandle$SpeciesData java.lang.invoke.LambdaForm$NamedFunction
StackMap stack:
aload 8
iload 6
new java.lang.invoke.LambdaForm$Name
dup
iconst_4
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 8
iconst_1
aaload
aastore
dup
iconst_1
aload 8
iload 5
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
21: StackMap locals:
StackMap stack:
iload 3
anewarray java.lang.Object
astore 11
start local 11 22: aload 11
iconst_0
aload 8
iload 6
aaload
aastore
23: iconst_1
istore 12
start local 12 24: goto 27
25: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 11
iload 12
aload 8
iload 12
aaload
aastore
26: iinc 12 1
StackMap locals:
StackMap stack:
27: iload 12
iload 3
if_icmplt 25
end local 12 28: aload 1
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/VarHandle;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
29: invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
30: astore 12
start local 12 31: aload 8
iload 7
new java.lang.invoke.LambdaForm$Name
dup
aload 12
aload 11
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)V
aastore
32: iload 2
ifeq 33
getstatic java.lang.invoke.LambdaForm$Kind.VARHANDLE_EXACT_INVOKER:Ljava/lang/invoke/LambdaForm$Kind;
goto 34
StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] java.lang.invoke.BoundMethodHandle$SpeciesData java.lang.invoke.LambdaForm$NamedFunction java.lang.Object[] java.lang.invoke.MethodType
StackMap stack:
33: getstatic java.lang.invoke.LambdaForm$Kind.VARHANDLE_INVOKER:Ljava/lang/invoke/LambdaForm$Kind;
StackMap locals:
StackMap stack: java.lang.invoke.LambdaForm$Kind
34: astore 13
start local 13 35: new java.lang.invoke.LambdaForm
dup
iload 3
aload 8
aload 13
invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Kind;)V
astore 14
start local 14 36: invokestatic java.lang.invoke.LambdaForm.debugNames:()Z
ifeq 44
37: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.invoke.VarHandle$AccessMode.methodName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
38: iload 2
ifeq 39
ldc ":VarHandle_exactInvoker_"
goto 40
StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] java.lang.invoke.BoundMethodHandle$SpeciesData java.lang.invoke.LambdaForm$NamedFunction java.lang.Object[] java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Kind java.lang.invoke.LambdaForm
StackMap stack: java.lang.StringBuilder
39: ldc ":VarHandle_invoker_"
StackMap locals: java.lang.invoke.VarHandle$AccessMode java.lang.invoke.MethodType int int int int int int java.lang.invoke.LambdaForm$Name[] java.lang.invoke.BoundMethodHandle$SpeciesData java.lang.invoke.LambdaForm$NamedFunction java.lang.Object[] java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Kind java.lang.invoke.LambdaForm
StackMap stack: java.lang.StringBuilder java.lang.String
40: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
41: aload 1
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;
42: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 15
start local 15 43: aload 14
aload 15
invokestatic java.lang.invoke.LambdaForm.associateWithDebugName:(Ljava/lang/invoke/LambdaForm;Ljava/lang/String;)V
end local 15 44: StackMap locals:
StackMap stack:
aload 14
invokevirtual java.lang.invoke.LambdaForm.prepare:()V
45: aload 14
areturn
end local 14 end local 13 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 46 0 ak Ljava/lang/invoke/VarHandle$AccessMode;
0 46 1 mtype Ljava/lang/invoke/MethodType;
0 46 2 isExact Z
1 46 3 ARG_LIMIT I
2 46 4 nameCursor I
3 46 5 VAD_ARG I
4 46 6 CHECK_TYPE I
5 46 7 LINKER_CALL I
6 46 8 names [Ljava/lang/invoke/LambdaForm$Name;
9 13 9 i I
14 46 9 speciesData Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
16 46 10 getter Ljava/lang/invoke/LambdaForm$NamedFunction;
22 46 11 outArgs [Ljava/lang/Object;
24 28 12 i I
31 46 12 outCallType Ljava/lang/invoke/MethodType;
35 46 13 kind Ljava/lang/invoke/LambdaForm$Kind;
36 46 14 lform Ljava/lang/invoke/LambdaForm;
43 44 15 name Ljava/lang/String;
MethodParameters:
Name Flags
ak
mtype
isExact
static java.lang.invoke.MethodHandle checkVarHandleGenericType(java.lang.invoke.VarHandle, java.lang.invoke.VarHandle$AccessDescriptor);
descriptor: (Ljava/lang/invoke/VarHandle;Ljava/lang/invoke/VarHandle$AccessDescriptor;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield java.lang.invoke.VarHandle$AccessDescriptor.mode:I
invokevirtual java.lang.invoke.VarHandle.getMethodHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 1
getfield java.lang.invoke.VarHandle$AccessDescriptor.symbolicMethodTypeInvoker:Ljava/lang/invoke/MethodType;
if_acmpne 3
2: aload 2
areturn
3: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 2
aload 1
getfield java.lang.invoke.VarHandle$AccessDescriptor.symbolicMethodTypeInvoker:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 handle Ljava/lang/invoke/VarHandle;
0 4 1 ad Ljava/lang/invoke/VarHandle$AccessDescriptor;
1 4 2 mh Ljava/lang/invoke/MethodHandle;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
handle
ad
static java.lang.invoke.MethodHandle checkVarHandleExactType(java.lang.invoke.VarHandle, java.lang.invoke.VarHandle$AccessDescriptor);
descriptor: (Ljava/lang/invoke/VarHandle;Ljava/lang/invoke/VarHandle$AccessDescriptor;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield java.lang.invoke.VarHandle$AccessDescriptor.mode:I
invokevirtual java.lang.invoke.VarHandle.getMethodHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 3
aload 1
getfield java.lang.invoke.VarHandle$AccessDescriptor.symbolicMethodTypeInvoker:Ljava/lang/invoke/MethodType;
if_acmpeq 4
3: aload 3
aload 1
getfield java.lang.invoke.VarHandle$AccessDescriptor.symbolicMethodTypeInvoker:Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.newWrongMethodTypeException:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/WrongMethodTypeException;
athrow
4: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 handle Ljava/lang/invoke/VarHandle;
0 5 1 ad Ljava/lang/invoke/VarHandle$AccessDescriptor;
1 5 2 mh Ljava/lang/invoke/MethodHandle;
2 5 3 mt Ljava/lang/invoke/MethodType;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
handle
ad
static java.lang.invoke.WrongMethodTypeException newWrongMethodTypeException(java.lang.invoke.MethodType, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/WrongMethodTypeException;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.invoke.WrongMethodTypeException
dup
new java.lang.StringBuilder
dup
ldc "expected "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " but found "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.invoke.WrongMethodTypeException.<init>:(Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 actual Ljava/lang/invoke/MethodType;
0 1 1 expected Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
actual
expected
static void checkExactType(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 1: aload 2
aload 1
if_acmpeq 3
2: aload 1
aload 2
invokestatic java.lang.invoke.Invokers.newWrongMethodTypeException:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/WrongMethodTypeException;
athrow
3: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 mh Ljava/lang/invoke/MethodHandle;
0 4 1 expected Ljava/lang/invoke/MethodType;
1 4 2 actual Ljava/lang/invoke/MethodType;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
mh
expected
static java.lang.invoke.MethodHandle checkGenericType(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 mh Ljava/lang/invoke/MethodHandle;
0 1 1 expected Ljava/lang/invoke/MethodType;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
mh
expected
static java.lang.invoke.MemberName linkToCallSiteMethod(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
invokestatic java.lang.invoke.Invokers.callSiteForm:(Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
astore 1
start local 1 1: aload 1
getfield java.lang.invoke.LambdaForm.vmentry:Ljava/lang/invoke/MemberName;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 mtype Ljava/lang/invoke/MethodType;
1 2 1 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
mtype
static java.lang.invoke.MemberName linkToTargetMethod(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
invokestatic java.lang.invoke.Invokers.callSiteForm:(Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
astore 1
start local 1 1: aload 1
getfield java.lang.invoke.LambdaForm.vmentry:Ljava/lang/invoke/MemberName;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 mtype Ljava/lang/invoke/MethodType;
1 2 1 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
mtype
private static java.lang.invoke.LambdaForm callSiteForm(java.lang.invoke.MethodType, boolean);
descriptor: (Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=14, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
astore 0
1: iload 1
ifeq 2
bipush 15
goto 3
StackMap locals:
StackMap stack:
2: bipush 14
StackMap locals:
StackMap stack: int
3: istore 2
start local 2 4: aload 0
invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
iload 2
invokevirtual java.lang.invoke.MethodTypeForm.cachedLambdaForm:(I)Ljava/lang/invoke/LambdaForm;
astore 3
start local 3 5: aload 3
ifnull 6
aload 3
areturn
6: StackMap locals: int java.lang.invoke.LambdaForm
StackMap stack:
iconst_0
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iadd
istore 4
start local 4 7: iload 4
iconst_1
iadd
istore 5
start local 5 8: iload 4
istore 6
start local 6 9: iload 6
iinc 6 1
istore 7
start local 7 10: iload 1
ifeq 11
iconst_m1
goto 12
StackMap locals: java.lang.invoke.MethodType int int java.lang.invoke.LambdaForm int int int int
StackMap stack:
11: iload 7
StackMap locals:
StackMap stack: int
12: istore 8
start local 8 13: iload 1
ifeq 14
iload 7
goto 15
StackMap locals: int
StackMap stack:
14: iload 6
iinc 6 1
StackMap locals:
StackMap stack: int
15: istore 9
start local 9 16: iload 6
iinc 6 1
istore 10
start local 10 17: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
iload 1
ifeq 18
ldc Ljava/lang/invoke/MethodHandle;
goto 19
StackMap locals: java.lang.invoke.MethodType int int java.lang.invoke.LambdaForm int int int int int int int
StackMap stack: java.lang.invoke.MethodType java.lang.Class[] java.lang.Class[] int
18: ldc Ljava/lang/invoke/CallSite;
StackMap locals: java.lang.invoke.MethodType int int java.lang.invoke.LambdaForm int int int int int int int
StackMap stack: java.lang.invoke.MethodType java.lang.Class[] java.lang.Class[] int java.lang.Class
19: aastore
invokevirtual java.lang.invoke.MethodType.appendParameterTypes:([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 11
start local 11 20: iload 6
iload 5
isub
aload 11
invokestatic java.lang.invoke.LambdaForm.arguments:(ILjava/lang/invoke/MethodType;)[Ljava/lang/invoke/LambdaForm$Name;
astore 12
start local 12 21: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 22
aload 12
arraylength
iload 6
if_icmpeq 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals: java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[]
StackMap stack:
getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 23
aload 12
iload 7
aaload
ifnonnull 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
iload 1
ifne 25
24: aload 12
iload 9
new java.lang.invoke.LambdaForm$Name
dup
iconst_2
invokestatic java.lang.invoke.Invokers.getFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 12
iload 8
aaload
aastore
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/LambdaForm$NamedFunction;[Ljava/lang/Object;)V
aastore
25: StackMap locals:
StackMap stack:
aload 12
iconst_0
iload 4
iconst_1
iadd
ldc [Ljava/lang/Object;
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
astore 13
start local 13 26: aload 13
iconst_0
aload 13
iconst_1
aload 13
arraylength
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: aload 13
iconst_0
aload 12
iload 9
aaload
aastore
28: aload 12
iload 10
new java.lang.invoke.LambdaForm$Name
dup
aload 0
aload 13
invokespecial java.lang.invoke.LambdaForm$Name.<init>:(Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)V
aastore
29: new java.lang.invoke.LambdaForm
dup
iload 5
aload 12
30: iload 1
ifeq 31
getstatic java.lang.invoke.LambdaForm$Kind.LINK_TO_TARGET_METHOD:Ljava/lang/invoke/LambdaForm$Kind;
goto 32
StackMap locals: java.lang.invoke.MethodType int int java.lang.invoke.LambdaForm int int int int int int int java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] java.lang.Object[]
StackMap stack: new 29 new 29 int java.lang.invoke.LambdaForm$Name[]
31: getstatic java.lang.invoke.LambdaForm$Kind.LINK_TO_CALL_SITE:Ljava/lang/invoke/LambdaForm$Kind;
32: StackMap locals: java.lang.invoke.MethodType int int java.lang.invoke.LambdaForm int int int int int int int java.lang.invoke.MethodType java.lang.invoke.LambdaForm$Name[] java.lang.Object[]
StackMap stack: new 29 new 29 int java.lang.invoke.LambdaForm$Name[] java.lang.invoke.LambdaForm$Kind
invokespecial java.lang.invoke.LambdaForm.<init>:(I[Ljava/lang/invoke/LambdaForm$Name;Ljava/lang/invoke/LambdaForm$Kind;)V
astore 3
33: aload 3
invokevirtual java.lang.invoke.LambdaForm.compileToBytecode:()V
34: aload 0
invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
iload 2
aload 3
invokevirtual java.lang.invoke.MethodTypeForm.setCachedLambdaForm:(ILjava/lang/invoke/LambdaForm;)Ljava/lang/invoke/LambdaForm;
astore 3
35: aload 3
areturn
end local 13 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 mtype Ljava/lang/invoke/MethodType;
0 36 1 skipCallSite Z
4 36 2 which I
5 36 3 lform Ljava/lang/invoke/LambdaForm;
7 36 4 OUTARG_LIMIT I
8 36 5 INARG_LIMIT I
9 36 6 nameCursor I
10 36 7 APPENDIX_ARG I
13 36 8 CSITE_ARG I
16 36 9 CALL_MH I
17 36 10 LINKER_CALL I
20 36 11 invokerFormType Ljava/lang/invoke/MethodType;
21 36 12 names [Ljava/lang/invoke/LambdaForm$Name;
26 36 13 outArgs [Ljava/lang/Object;
MethodParameters:
Name Flags
mtype
skipCallSite
static java.lang.invoke.MethodHandle getCallSiteTarget(java.lang.invoke.CallSite);
descriptor: (Ljava/lang/invoke/CallSite;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.CallSite.getTarget:()Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 site Ljava/lang/invoke/CallSite;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
site
static void checkCustomized(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.invoke.MethodHandleImpl.isCompileConstant:(Ljava/lang/Object;)Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.MethodHandle.form:Ljava/lang/invoke/LambdaForm;
getfield java.lang.invoke.LambdaForm.customized:Ljava/lang/invoke/MethodHandle;
ifnonnull 3
2: aload 0
invokestatic java.lang.invoke.Invokers.maybeCustomize:(Ljava/lang/invoke/MethodHandle;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 mh Ljava/lang/invoke/MethodHandle;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
mh
static void maybeCustomize(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.lang.invoke.MethodHandle.customizationCount:B
istore 1
start local 1 1: iload 1
getstatic java.lang.invoke.MethodHandleStatics.CUSTOMIZE_THRESHOLD:I
if_icmplt 4
2: aload 0
invokevirtual java.lang.invoke.MethodHandle.customize:()V
3: goto 5
4: StackMap locals: int
StackMap stack:
aload 0
iload 1
iconst_1
iadd
i2b
putfield java.lang.invoke.MethodHandle.customizationCount:B
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 mh Ljava/lang/invoke/MethodHandle;
1 6 1 count B
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.DontInline()
MethodParameters:
Name Flags
mh
private static java.lang.invoke.LambdaForm$NamedFunction getFunction(byte);
descriptor: (B)Ljava/lang/invoke/LambdaForm$NamedFunction;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic java.lang.invoke.Invokers.NFS:[Ljava/lang/invoke/LambdaForm$NamedFunction;
iload 0
aaload
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: java.lang.invoke.LambdaForm$NamedFunction
StackMap stack:
getstatic java.lang.invoke.Invokers.NFS:[Ljava/lang/invoke/LambdaForm$NamedFunction;
iload 0
iload 0
invokestatic java.lang.invoke.Invokers.createFunction:(B)Ljava/lang/invoke/LambdaForm$NamedFunction;
dup
astore 1
aastore
4: getstatic java.lang.invoke.Invokers.$assertionsDisabled:Z
ifne 5
iconst_1
anewarray java.lang.invoke.LambdaForm$NamedFunction
dup
iconst_0
aload 1
aastore
invokestatic java.lang.invoke.InvokerBytecodeGenerator.isStaticallyInvocable:([Ljava/lang/invoke/LambdaForm$NamedFunction;)Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 func B
1 6 1 nf Ljava/lang/invoke/LambdaForm$NamedFunction;
MethodParameters:
Name Flags
func
private static java.lang.invoke.LambdaForm$NamedFunction createFunction(byte);
descriptor: (B)Ljava/lang/invoke/LambdaForm$NamedFunction;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: iload 0
tableswitch { // 0 - 5
0: 1
1: 3
2: 5
3: 7
4: 9
5: 11
default: 13
}
1: StackMap locals:
StackMap stack:
ldc "checkExactType"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
ldc Ljava/lang/invoke/MethodHandle;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/MethodType;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.getNamedFunction:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
2: areturn
3: StackMap locals:
StackMap stack:
ldc "checkGenericType"
ldc Ljava/lang/invoke/MethodHandle;
ldc Ljava/lang/invoke/MethodHandle;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/MethodType;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.getNamedFunction:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
4: areturn
5: StackMap locals:
StackMap stack:
ldc "getCallSiteTarget"
ldc Ljava/lang/invoke/MethodHandle;
ldc Ljava/lang/invoke/CallSite;
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.getNamedFunction:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
6: areturn
7: StackMap locals:
StackMap stack:
ldc "checkCustomized"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
ldc Ljava/lang/invoke/MethodHandle;
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.getNamedFunction:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
8: areturn
9: StackMap locals:
StackMap stack:
ldc "checkVarHandleGenericType"
ldc Ljava/lang/invoke/MethodHandle;
ldc Ljava/lang/invoke/VarHandle;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/VarHandle$AccessDescriptor;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.getNamedFunction:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
10: areturn
11: StackMap locals:
StackMap stack:
ldc "checkVarHandleExactType"
ldc Ljava/lang/invoke/MethodHandle;
ldc Ljava/lang/invoke/VarHandle;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/invoke/VarHandle$AccessDescriptor;
aastore
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.Invokers.getNamedFunction:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
12: areturn
13: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unknown function: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
athrow
14: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 1
start local 1 15: aload 1
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Exception;)Ljava/lang/InternalError;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 func B
15 16 1 ex Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 2 14 Class java.lang.ReflectiveOperationException
3 4 14 Class java.lang.ReflectiveOperationException
5 6 14 Class java.lang.ReflectiveOperationException
7 8 14 Class java.lang.ReflectiveOperationException
9 10 14 Class java.lang.ReflectiveOperationException
11 12 14 Class java.lang.ReflectiveOperationException
13 14 14 Class java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
func
private static java.lang.invoke.LambdaForm$NamedFunction getNamedFunction(java.lang.String, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm$NamedFunction;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.invoke.MemberName
dup
ldc Ljava/lang/invoke/Invokers;
aload 0
aload 1
bipush 6
invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
astore 2
start local 2 1: new java.lang.invoke.LambdaForm$NamedFunction
dup
2: invokestatic java.lang.invoke.MemberName.getFactory:()Ljava/lang/invoke/MemberName$Factory;
3: bipush 6
aload 2
ldc Ljava/lang/invoke/Invokers;
ldc Ljava/lang/NoSuchMethodException;
invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
4: invokespecial java.lang.invoke.LambdaForm$NamedFunction.<init>:(Ljava/lang/invoke/MemberName;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 name Ljava/lang/String;
0 5 1 type Ljava/lang/invoke/MethodType;
1 5 2 member Ljava/lang/invoke/MemberName;
Exceptions:
throws java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
name
type
}
SourceFile: "Invokers.java"
NestMembers:
java.lang.invoke.Invokers$Holder java.lang.invoke.Invokers$Lazy
InnerClasses:
final SpeciesData = java.lang.invoke.BoundMethodHandle$SpeciesData of java.lang.invoke.BoundMethodHandle
final Holder = java.lang.invoke.Invokers$Holder of java.lang.invoke.Invokers
private Lazy = java.lang.invoke.Invokers$Lazy of java.lang.invoke.Invokers
final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm
final Kind = java.lang.invoke.LambdaForm$Kind 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
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
final AccessDescriptor = java.lang.invoke.VarHandle$AccessDescriptor of java.lang.invoke.VarHandle
public final AccessMode = java.lang.invoke.VarHandle$AccessMode of java.lang.invoke.VarHandle
final AccessType = java.lang.invoke.VarHandle$AccessType of java.lang.invoke.VarHandle