final class java.lang.invoke.VarHandles
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.lang.invoke.VarHandles
super_class: java.lang.Object
{
static java.lang.ClassValue<java.util.concurrent.ConcurrentMap<java.lang.Integer, java.lang.invoke.MethodHandle>> ADDRESS_FACTORIES;
descriptor: Ljava/lang/ClassValue;
flags: (0x0008) ACC_STATIC
Signature: Ljava/lang/ClassValue<Ljava/util/concurrent/ConcurrentMap<Ljava/lang/Integer;Ljava/lang/invoke/MethodHandle;>;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$java$lang$invoke$VarHandle$AccessType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljava/lang/invoke/VarHandles;
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.VarHandles.$assertionsDisabled:Z
3: new java.lang.invoke.VarHandles$1
dup
invokespecial java.lang.invoke.VarHandles$1.<init>:()V
putstatic java.lang.invoke.VarHandles.ADDRESS_FACTORIES:Ljava/lang/ClassValue;
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/VarHandles;
static java.lang.invoke.VarHandle makeFieldHandle(java.lang.invoke.MemberName, java.lang.Class<?>, java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual java.lang.invoke.MemberName.isStatic:()Z
ifne 48
1: aload 0
invokestatic java.lang.invoke.MethodHandleNatives.objectFieldOffset:(Ljava/lang/invoke/MemberName;)J
lstore 4
start local 4 2: aload 2
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 7
3: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 5
iload 3
ifne 5
4: new java.lang.invoke.VarHandleReferences$FieldInstanceReadOnly
dup
aload 1
lload 4
aload 2
invokespecial java.lang.invoke.VarHandleReferences$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;JLjava/lang/Class;)V
goto 6
5: StackMap locals: long
StackMap stack:
new java.lang.invoke.VarHandleReferences$FieldInstanceReadWrite
dup
aload 1
lload 4
aload 2
invokespecial java.lang.invoke.VarHandleReferences$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;JLjava/lang/Class;)V
6: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleReferences$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
7: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 12
8: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 10
iload 3
ifne 10
9: new java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 11
10: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleBooleans$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleBooleans$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
11: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
12: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 17
13: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 15
iload 3
ifne 15
14: new java.lang.invoke.VarHandleBytes$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleBytes$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 16
15: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleBytes$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleBytes$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
16: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleBytes$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
17: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 22
18: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 20
iload 3
ifne 20
19: new java.lang.invoke.VarHandleShorts$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleShorts$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 21
20: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleShorts$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleShorts$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
21: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleShorts$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
22: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 27
23: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 25
iload 3
ifne 25
24: new java.lang.invoke.VarHandleChars$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleChars$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 26
25: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleChars$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleChars$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
26: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleChars$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
27: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 32
28: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 30
iload 3
ifne 30
29: new java.lang.invoke.VarHandleInts$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleInts$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 31
30: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleInts$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleInts$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
31: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleInts$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
32: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 37
33: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 35
iload 3
ifne 35
34: new java.lang.invoke.VarHandleLongs$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleLongs$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 36
35: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
36: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleLongs$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
37: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 42
38: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 40
iload 3
ifne 40
39: new java.lang.invoke.VarHandleFloats$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleFloats$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 41
40: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleFloats$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleFloats$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
41: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleFloats$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
42: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 47
43: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 45
iload 3
ifne 45
44: new java.lang.invoke.VarHandleDoubles$FieldInstanceReadOnly
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleDoubles$FieldInstanceReadOnly.<init>:(Ljava/lang/Class;J)V
goto 46
45: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleDoubles$FieldInstanceReadWrite
dup
aload 1
lload 4
invokespecial java.lang.invoke.VarHandleDoubles$FieldInstanceReadWrite.<init>:(Ljava/lang/Class;J)V
46: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleDoubles$FieldInstanceReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
47: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 4 48: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 1
invokevirtual jdk.internal.misc.Unsafe.shouldBeInitialized:(Ljava/lang/Class;)Z
ifeq 50
49: getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 1
invokevirtual jdk.internal.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
50: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.invoke.MethodHandleNatives.staticFieldBase:(Ljava/lang/invoke/MemberName;)Ljava/lang/Object;
astore 4
start local 4 51: aload 0
invokestatic java.lang.invoke.MethodHandleNatives.staticFieldOffset:(Ljava/lang/invoke/MemberName;)J
lstore 5
start local 5 52: aload 2
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 57
53: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 55
iload 3
ifne 55
54: new java.lang.invoke.VarHandleReferences$FieldStaticReadOnly
dup
aload 4
lload 5
aload 2
invokespecial java.lang.invoke.VarHandleReferences$FieldStaticReadOnly.<init>:(Ljava/lang/Object;JLjava/lang/Class;)V
goto 56
55: StackMap locals: java.lang.Object long
StackMap stack:
new java.lang.invoke.VarHandleReferences$FieldStaticReadWrite
dup
aload 4
lload 5
aload 2
invokespecial java.lang.invoke.VarHandleReferences$FieldStaticReadWrite.<init>:(Ljava/lang/Object;JLjava/lang/Class;)V
56: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleReferences$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
57: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 62
58: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 60
iload 3
ifne 60
59: new java.lang.invoke.VarHandleBooleans$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleBooleans$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 61
60: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleBooleans$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleBooleans$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
61: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleBooleans$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
62: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 67
63: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 65
iload 3
ifne 65
64: new java.lang.invoke.VarHandleBytes$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleBytes$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 66
65: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleBytes$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleBytes$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
66: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleBytes$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
67: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 72
68: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 70
iload 3
ifne 70
69: new java.lang.invoke.VarHandleShorts$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleShorts$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 71
70: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleShorts$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleShorts$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
71: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleShorts$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
72: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 77
73: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 75
iload 3
ifne 75
74: new java.lang.invoke.VarHandleChars$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleChars$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 76
75: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleChars$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleChars$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
76: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleChars$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
77: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 82
78: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 80
iload 3
ifne 80
79: new java.lang.invoke.VarHandleInts$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleInts$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 81
80: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleInts$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleInts$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
81: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleInts$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
82: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 87
83: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 85
iload 3
ifne 85
84: new java.lang.invoke.VarHandleLongs$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleLongs$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 86
85: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleLongs$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleLongs$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
86: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleLongs$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
87: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 92
88: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 90
iload 3
ifne 90
89: new java.lang.invoke.VarHandleFloats$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleFloats$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 91
90: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleFloats$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleFloats$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
91: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleFloats$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
92: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 97
93: aload 0
invokevirtual java.lang.invoke.MemberName.isFinal:()Z
ifeq 95
iload 3
ifne 95
94: new java.lang.invoke.VarHandleDoubles$FieldStaticReadOnly
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleDoubles$FieldStaticReadOnly.<init>:(Ljava/lang/Object;J)V
goto 96
95: StackMap locals:
StackMap stack:
new java.lang.invoke.VarHandleDoubles$FieldStaticReadWrite
dup
aload 4
lload 5
invokespecial java.lang.invoke.VarHandleDoubles$FieldStaticReadWrite.<init>:(Ljava/lang/Object;J)V
96: StackMap locals:
StackMap stack: java.lang.invoke.VarHandleDoubles$FieldStaticReadOnly
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
97: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
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 98 0 f Ljava/lang/invoke/MemberName;
0 98 1 refc Ljava/lang/Class<*>;
0 98 2 type Ljava/lang/Class<*>;
0 98 3 isWriteAllowedOnFinalFields Z
2 48 4 foffset J
51 98 4 base Ljava/lang/Object;
52 98 5 foffset J
Signature: (Ljava/lang/invoke/MemberName;Ljava/lang/Class<*>;Ljava/lang/Class<*>;Z)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
f
refc
type
isWriteAllowedOnFinalFields
static java.lang.reflect.Field getFieldFromReceiverAndOffset(java.lang.Class<?>, long, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;JLjava/lang/Class;)Ljava/lang/reflect/Field;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 7
StackMap locals: java.lang.Class long java.lang.Class top int int java.lang.reflect.Field[]
StackMap stack:
1: aload 7
iload 5
aaload
astore 4
start local 4 2: aload 4
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 3
goto 6
3: StackMap locals: java.lang.Class long java.lang.Class java.lang.reflect.Field int int java.lang.reflect.Field[]
StackMap stack:
lload 1
getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 4
invokevirtual jdk.internal.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
lcmp
ifne 6
4: getstatic java.lang.invoke.VarHandles.$assertionsDisabled:Z
ifne 5
aload 4
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
aload 3
if_acmpeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 6: StackMap locals: java.lang.Class long java.lang.Class top int int java.lang.reflect.Field[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
iload 6
if_icmplt 1
8: new java.lang.InternalError
dup
ldc "Field not found at offset"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 receiverType Ljava/lang/Class<*>;
0 9 1 offset J
0 9 3 fieldType Ljava/lang/Class<*>;
2 6 4 f Ljava/lang/reflect/Field;
Signature: (Ljava/lang/Class<*>;JLjava/lang/Class<*>;)Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
receiverType
offset
fieldType
static java.lang.reflect.Field getStaticFieldFromBaseAndOffset(, long, java.lang.Class<?>);
descriptor: (Ljava/lang/Object;JLjava/lang/Class;)Ljava/lang/reflect/Field;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 3 0: aload 0
checkcast java.lang.Class
astore 4
start local 4 1: aload 4
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 8
StackMap locals: java.lang.Object long java.lang.Class java.lang.Class top int int java.lang.reflect.Field[]
StackMap stack:
2: aload 8
iload 6
aaload
astore 5
start local 5 3: aload 5
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifne 4
goto 7
4: StackMap locals: java.lang.Object long java.lang.Class java.lang.Class java.lang.reflect.Field int int java.lang.reflect.Field[]
StackMap stack:
lload 1
getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 5
invokevirtual jdk.internal.misc.Unsafe.staticFieldOffset:(Ljava/lang/reflect/Field;)J
lcmp
ifne 7
5: getstatic java.lang.invoke.VarHandles.$assertionsDisabled:Z
ifne 6
aload 5
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
aload 3
if_acmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 7: StackMap locals: java.lang.Object long java.lang.Class java.lang.Class top int int java.lang.reflect.Field[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
iload 7
if_icmplt 2
9: new java.lang.InternalError
dup
ldc "Static field not found at offset"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 base Ljava/lang/Object;
0 10 1 offset J
0 10 3 fieldType Ljava/lang/Class<*>;
1 10 4 receiverType Ljava/lang/Class<*>;
3 7 5 f Ljava/lang/reflect/Field;
Signature: (Ljava/lang/Object;JLjava/lang/Class<*>;)Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
base
offset
fieldType
static java.lang.invoke.VarHandle makeArrayElementHandle(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.isArray:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "not an array: "
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;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 1
start local 1 3: getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 0
invokevirtual jdk.internal.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
istore 2
start local 2 4: getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 0
invokevirtual jdk.internal.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
istore 3
start local 3 5: bipush 31
iload 3
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
istore 4
start local 4 6: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 8
7: new java.lang.invoke.VarHandleReferences$Array
dup
iload 2
iload 4
aload 0
invokespecial java.lang.invoke.VarHandleReferences$Array.<init>:(IILjava/lang/Class;)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
8: StackMap locals: java.lang.Class java.lang.Class int int int
StackMap stack:
aload 1
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 10
9: new java.lang.invoke.VarHandleBooleans$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleBooleans$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
10: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 12
11: new java.lang.invoke.VarHandleBytes$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleBytes$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
12: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 14
13: new java.lang.invoke.VarHandleShorts$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleShorts$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
14: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 16
15: new java.lang.invoke.VarHandleChars$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleChars$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
16: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 18
17: new java.lang.invoke.VarHandleInts$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleInts$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
18: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 20
19: new java.lang.invoke.VarHandleLongs$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleLongs$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
20: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 22
21: new java.lang.invoke.VarHandleFloats$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleFloats$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
22: StackMap locals:
StackMap stack:
aload 1
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 24
23: new java.lang.invoke.VarHandleDoubles$Array
dup
iload 2
iload 4
invokespecial java.lang.invoke.VarHandleDoubles$Array.<init>:(II)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
24: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 arrayClass Ljava/lang/Class<*>;
3 25 1 componentType Ljava/lang/Class<*>;
4 25 2 aoffset I
5 25 3 ascale I
6 25 4 ashift I
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
arrayClass
static java.lang.invoke.VarHandle byteArrayViewHandle(java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.isArray:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "not an array: "
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;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 2
start local 2 3: aload 2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 5
4: new java.lang.invoke.VarHandleByteArrayAsLongs$ArrayHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsLongs$ArrayHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
5: StackMap locals: java.lang.Class
StackMap stack:
aload 2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 7
6: new java.lang.invoke.VarHandleByteArrayAsInts$ArrayHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsInts$ArrayHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
7: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 9
8: new java.lang.invoke.VarHandleByteArrayAsShorts$ArrayHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsShorts$ArrayHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
9: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 11
10: new java.lang.invoke.VarHandleByteArrayAsChars$ArrayHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsChars$ArrayHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
11: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 13
12: new java.lang.invoke.VarHandleByteArrayAsDoubles$ArrayHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsDoubles$ArrayHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
13: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 15
14: new java.lang.invoke.VarHandleByteArrayAsFloats$ArrayHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsFloats$ArrayHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
15: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 viewArrayClass Ljava/lang/Class<*>;
0 16 1 be Z
3 16 2 viewComponentType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Z)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
viewArrayClass
be
static java.lang.invoke.VarHandle makeByteBufferViewHandle(java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.isArray:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "not an array: "
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;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 2
start local 2 3: aload 2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 5
4: new java.lang.invoke.VarHandleByteArrayAsLongs$ByteBufferHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsLongs$ByteBufferHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
5: StackMap locals: java.lang.Class
StackMap stack:
aload 2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 7
6: new java.lang.invoke.VarHandleByteArrayAsInts$ByteBufferHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsInts$ByteBufferHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
7: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 9
8: new java.lang.invoke.VarHandleByteArrayAsShorts$ByteBufferHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsShorts$ByteBufferHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
9: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 11
10: new java.lang.invoke.VarHandleByteArrayAsChars$ByteBufferHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsChars$ByteBufferHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
11: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 13
12: new java.lang.invoke.VarHandleByteArrayAsDoubles$ByteBufferHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsDoubles$ByteBufferHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
13: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 15
14: new java.lang.invoke.VarHandleByteArrayAsFloats$ByteBufferHandle
dup
iload 1
invokespecial java.lang.invoke.VarHandleByteArrayAsFloats$ByteBufferHandle.<init>:(Z)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
15: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 viewArrayClass Ljava/lang/Class<*>;
0 16 1 be Z
3 16 2 viewComponentType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Z)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
viewArrayClass
be
static java.lang.invoke.VarHandle makeMemoryAddressViewHandle(java.lang.Class<?>, boolean, long, java.nio.ByteOrder);
descriptor: (Ljava/lang/Class;ZJLjava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 1
aload 0
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 1
aload 0
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid carrier: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()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.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.bitWidth:()I
bipush 8
idiv
i2l
lstore 5
start local 5 3: aload 4
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
if_acmpne 4
iconst_1
goto 5
StackMap locals: long
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: aload 0
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 9
8: new java.lang.invoke.MemoryAccessVarHandleByteHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleByteHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
9: StackMap locals: int int
StackMap stack:
aload 0
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 11
10: new java.lang.invoke.MemoryAccessVarHandleCharHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleCharHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
11: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 13
12: new java.lang.invoke.MemoryAccessVarHandleShortHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleShortHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
13: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 15
14: new java.lang.invoke.MemoryAccessVarHandleIntHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleIntHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
15: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 17
16: new java.lang.invoke.MemoryAccessVarHandleFloatHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleFloatHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
17: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 19
18: new java.lang.invoke.MemoryAccessVarHandleLongHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleLongHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
19: StackMap locals:
StackMap stack:
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 21
20: new java.lang.invoke.MemoryAccessVarHandleDoubleHelper
dup
iload 1
iload 7
lload 5
lload 2
iload 8
invokespecial java.lang.invoke.MemoryAccessVarHandleDoubleHelper.<init>:(ZZJJZ)V
invokestatic java.lang.invoke.VarHandles.maybeAdapt:(Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
areturn
21: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Cannot get here"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 8 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 carrier Ljava/lang/Class<*>;
0 22 1 skipAlignmentMaskCheck Z
0 22 2 alignmentMask J
0 22 4 byteOrder Ljava/nio/ByteOrder;
3 22 5 size J
6 22 7 be Z
7 22 8 exact Z
Signature: (Ljava/lang/Class<*>;ZJLjava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
carrier
skipAlignmentMaskCheck
alignmentMask
byteOrder
private static java.lang.invoke.VarHandle maybeAdapt(java.lang.invoke.VarHandle);
descriptor: (Ljava/lang/invoke/VarHandle;)Ljava/lang/invoke/VarHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: getstatic java.lang.invoke.MethodHandleStatics.VAR_HANDLE_IDENTITY_ADAPT:Z
ifne 1
aload 0
areturn
1: StackMap locals:
StackMap stack:
aload 0
2: aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
3: invokestatic java.lang.invoke.VarHandles.filterValue:(Ljava/lang/invoke/VarHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
astore 0
4: aload 0
getstatic java.lang.invoke.VarHandle$AccessMode.GET:Ljava/lang/invoke/VarHandle$AccessMode;
invokevirtual java.lang.invoke.VarHandle.accessModeType:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodType;
astore 1
start local 1 5: iconst_0
istore 2
start local 2 6: goto 9
7: StackMap locals: java.lang.invoke.MethodType int
StackMap stack:
aload 0
iload 2
iconst_1
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 1
iload 2
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
aastore
invokestatic java.lang.invoke.VarHandles.filterCoordinates:(Ljava/lang/invoke/VarHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
astore 0
8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmplt 7
end local 2 10: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 target Ljava/lang/invoke/VarHandle;
5 11 1 mtype Ljava/lang/invoke/MethodType;
6 10 2 i I
MethodParameters:
Name Flags
target
public static java.lang.invoke.VarHandle filterValue(java.lang.invoke.VarHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/VarHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
1: aload 1
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
2: aload 2
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
3: aload 1
invokestatic java.lang.invoke.VarHandles.noCheckedExceptions:(Ljava/lang/invoke/MethodHandle;)V
4: aload 2
invokestatic java.lang.invoke.VarHandles.noCheckedExceptions:(Ljava/lang/invoke/MethodHandle;)V
5: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 6: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 7: aload 3
aload 0
invokevirtual java.lang.invoke.VarHandle.coordinateTypes:()Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
8: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmpeq 10
9: ldc "filterFromTarget and filterToTarget have different arity"
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
10: StackMap locals: java.util.List java.util.List
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmpge 12
11: ldc "filterFromTarget filter type has wrong arity"
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmpge 14
13: ldc "filterToTarget filter type has wrong arity"
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
14: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.lastParameterType:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpne 16
15: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.lastParameterType:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 17
16: StackMap locals:
StackMap stack:
ldc "filterFromTarget and filterToTarget filter types do not match"
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.lastParameterType:()Ljava/lang/Class;
if_acmpeq 19
18: ldc "filterFromTarget filter type does not match target var handle type"
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 21
20: ldc "filterFromTarget filter type does not match target var handle type"
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
21: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmple 30
22: iconst_0
istore 5
start local 5 23: goto 29
24: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iload 5
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iload 5
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 26
25: ldc "filterFromTarget and filterToTarget filter types do not match"
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
26: StackMap locals:
StackMap stack:
aload 3
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iload 5
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: aload 4
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iload 5
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
28: iinc 5 1
StackMap locals:
StackMap stack:
29: iload 5
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
if_icmplt 24
end local 5 30: StackMap locals:
StackMap stack:
new java.lang.invoke.IndirectVarHandle
dup
aload 0
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 3
iconst_0
anewarray java.lang.Class
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
31: aload 2
aload 1
aload 4
invokedynamic apply(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/util/List;)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/VarHandles.lambda$0(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/util/List;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
32: invokespecial java.lang.invoke.IndirectVarHandle.<init>:(Ljava/lang/invoke/VarHandle;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/function/BiFunction;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 target Ljava/lang/invoke/VarHandle;
0 33 1 filterToTarget Ljava/lang/invoke/MethodHandle;
0 33 2 filterFromTarget Ljava/lang/invoke/MethodHandle;
6 33 3 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
7 33 4 additionalCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
23 30 5 i I
MethodParameters:
Name Flags
target
filterToTarget
filterFromTarget
private static java.lang.invoke.MethodHandle joinDuplicateArgs(java.lang.invoke.MethodHandle, int, int, int);
descriptor: (Ljava/lang/invoke/MethodHandle;III)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
newarray 10
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 5
3: StackMap locals: int[] int
StackMap stack:
aload 4
iload 5
iload 5
iastore
4: iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
iload 2
if_icmplt 3
end local 5 6: iconst_0
istore 5
start local 5 7: goto 10
8: StackMap locals:
StackMap stack:
aload 4
iload 2
iload 5
iadd
iload 1
iload 5
iadd
iastore
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
iload 3
if_icmplt 8
end local 5 11: iload 2
iload 3
iadd
istore 5
start local 5 12: goto 15
13: StackMap locals:
StackMap stack:
aload 4
iload 5
iload 5
iload 3
isub
iastore
14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
aload 4
arraylength
if_icmplt 13
end local 5 16: aload 0
17: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iload 2
iload 2
iload 3
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
18: aload 4
19: invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 handle Ljava/lang/invoke/MethodHandle;
0 20 1 originalStart I
0 20 2 dropStart I
0 20 3 length I
1 20 4 perms [I
2 6 5 i I
7 11 5 i I
12 16 5 i I
MethodParameters:
Name Flags
handle
originalStart
dropStart
length
public static java.lang.invoke.VarHandle filterCoordinates(java.lang.invoke.VarHandle, int, java.lang.invoke.MethodHandle[]);
descriptor: (Ljava/lang/invoke/VarHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
1: aload 2
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
2: aload 0
invokevirtual java.lang.invoke.VarHandle.coordinateTypes:()Ljava/util/List;
astore 3
start local 3 3: iload 1
iflt 4
iload 1
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 5
4: StackMap locals: java.util.List
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Invalid position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " for coordinate types"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
iload 1
aload 2
arraylength
iadd
aload 3
invokeinterface java.util.List.size:()I
if_icmple 7
6: new java.lang.IllegalArgumentException
dup
ldc "Too many filters"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
arraylength
ifne 8
aload 0
areturn
8: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 9: iconst_0
istore 5
start local 5 10: goto 19
11: StackMap locals: java.util.List int
StackMap stack:
aload 2
iload 5
aaload
invokestatic java.lang.invoke.VarHandles.noCheckedExceptions:(Ljava/lang/invoke/MethodHandle;)V
12: aload 2
iload 5
aaload
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 6
start local 6 13: aload 6
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmpeq 15
14: new java.lang.StringBuilder
dup
ldc "Invalid filter type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
15: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 4
iload 1
iload 5
iadd
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 6
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 17
16: new java.lang.StringBuilder
dup
ldc "Invalid filter type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " for coordinate type "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
17: StackMap locals:
StackMap stack:
aload 4
iload 1
iload 5
iadd
aload 2
iload 5
aaload
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
end local 6 18: iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
aload 2
arraylength
if_icmplt 11
end local 5 20: new java.lang.invoke.IndirectVarHandle
dup
aload 0
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 4
iconst_0
anewarray java.lang.Class
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
21: iload 1
aload 2
invokedynamic apply(I[Ljava/lang/invoke/MethodHandle;)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/VarHandles.lambda$1(I[Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
22: invokespecial java.lang.invoke.IndirectVarHandle.<init>:(Ljava/lang/invoke/VarHandle;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/function/BiFunction;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 target Ljava/lang/invoke/VarHandle;
0 23 1 pos I
0 23 2 filters [Ljava/lang/invoke/MethodHandle;
3 23 3 targetCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
9 23 4 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
10 20 5 i I
13 18 6 filterType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
target
pos
filters
public static java.lang.invoke.VarHandle insertCoordinates(java.lang.invoke.VarHandle, int, java.lang.Object[]);
descriptor: (Ljava/lang/invoke/VarHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/VarHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
1: aload 2
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
2: aload 0
invokevirtual java.lang.invoke.VarHandle.coordinateTypes:()Ljava/util/List;
astore 3
start local 3 3: iload 1
iflt 4
iload 1
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 5
4: StackMap locals: java.util.List
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Invalid position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " for coordinate types"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
iload 1
aload 2
arraylength
iadd
aload 3
invokeinterface java.util.List.size:()I
if_icmple 7
6: new java.lang.IllegalArgumentException
dup
ldc "Too many values"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
arraylength
ifne 8
aload 0
areturn
8: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 9: iconst_0
istore 5
start local 5 10: goto 19
11: StackMap locals: java.util.List int
StackMap stack:
aload 4
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
astore 6
start local 6 12: aload 6
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 16
13: aload 6
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
astore 7
start local 7 14: aload 7
aload 2
iload 5
aaload
aload 6
invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
pop
end local 7 15: goto 17
16: StackMap locals: java.lang.Class
StackMap stack:
aload 6
aload 2
iload 5
aaload
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
pop
17: StackMap locals:
StackMap stack:
aload 4
iload 1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
end local 6 18: iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
aload 2
arraylength
if_icmplt 11
end local 5 20: new java.lang.invoke.IndirectVarHandle
dup
aload 0
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 4
iconst_0
anewarray java.lang.Class
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
21: iload 1
aload 2
invokedynamic apply(I[Ljava/lang/Object;)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/VarHandles.lambda$2(I[Ljava/lang/Object;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
22: invokespecial java.lang.invoke.IndirectVarHandle.<init>:(Ljava/lang/invoke/VarHandle;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/function/BiFunction;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 target Ljava/lang/invoke/VarHandle;
0 23 1 pos I
0 23 2 values [Ljava/lang/Object;
3 23 3 targetCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
9 23 4 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
10 20 5 i I
12 18 6 pt Ljava/lang/Class<*>;
14 15 7 w Lsun/invoke/util/Wrapper;
MethodParameters:
Name Flags
target
pos
values
public static java.lang.invoke.VarHandle permuteCoordinates(java.lang.invoke.VarHandle, java.util.List<java.lang.Class<?>>, int[]);
descriptor: (Ljava/lang/invoke/VarHandle;Ljava/util/List;[I)Ljava/lang/invoke/VarHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
1: aload 1
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
2: aload 2
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
3: aload 0
invokevirtual java.lang.invoke.VarHandle.coordinateTypes:()Ljava/util/List;
astore 3
start local 3 4: aload 2
5: getstatic java.lang.Void.TYPE:Ljava/lang/Class;
aload 1
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
6: getstatic java.lang.Void.TYPE:Ljava/lang/Class;
aload 3
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
7: invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
pop
8: new java.lang.invoke.IndirectVarHandle
dup
aload 0
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 1
iconst_0
anewarray java.lang.Class
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
9: aload 3
aload 1
aload 2
invokedynamic apply(Ljava/util/List;Ljava/util/List;[I)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/VarHandles.lambda$3(Ljava/util/List;Ljava/util/List;[ILjava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
10: invokespecial java.lang.invoke.IndirectVarHandle.<init>:(Ljava/lang/invoke/VarHandle;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/function/BiFunction;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 target Ljava/lang/invoke/VarHandle;
0 11 1 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
0 11 2 reorder [I
4 11 3 targetCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/lang/invoke/VarHandle;Ljava/util/List<Ljava/lang/Class<*>;>;[I)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
target
newCoordinates
reorder
private static int numTrailingArgs(java.lang.invoke.VarHandle$AccessType);
descriptor: (Ljava/lang/invoke/VarHandle$AccessType;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: invokestatic java.lang.invoke.VarHandles.$SWITCH_TABLE$java$lang$invoke$VarHandle$AccessType:()[I
aload 0
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 1
2: 2
3: 3
4: 3
5: 2
default: 4
}
1: StackMap locals:
StackMap stack:
iconst_0
goto 5
2: StackMap locals:
StackMap stack:
iconst_1
goto 5
3: StackMap locals:
StackMap stack:
iconst_2
goto 5
StackMap locals:
StackMap stack:
4: new java.lang.IncompatibleClassChangeError
dup
invokespecial java.lang.IncompatibleClassChangeError.<init>:()V
athrow
5: StackMap locals:
StackMap stack: int
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 at Ljava/lang/invoke/VarHandle$AccessType;
MethodParameters:
Name Flags
at
private static int[] reorderArrayFor(java.lang.invoke.VarHandle$AccessType, java.util.List<java.lang.Class<?>>, );
descriptor: (Ljava/lang/invoke/VarHandle$AccessType;Ljava/util/List;[I)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.lang.invoke.VarHandles.numTrailingArgs:(Ljava/lang/invoke/VarHandle$AccessType;)I
istore 3
start local 3 1: aload 2
arraylength
iconst_1
iadd
iload 3
iadd
newarray 10
astore 4
start local 4 2: aload 4
iconst_0
iconst_0
iastore
3: iconst_0
istore 5
start local 5 4: goto 7
5: StackMap locals: int int[] int
StackMap stack:
aload 4
iload 5
iconst_1
iadd
aload 2
iload 5
iaload
iconst_1
iadd
iastore
6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
aload 2
arraylength
if_icmplt 5
end local 5 8: iconst_0
istore 5
start local 5 9: goto 12
10: StackMap locals:
StackMap stack:
aload 4
iload 5
aload 2
arraylength
iadd
iconst_1
iadd
iload 5
aload 1
invokeinterface java.util.List.size:()I
iadd
iconst_1
iadd
iastore
11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
iload 3
if_icmplt 10
end local 5 13: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 at Ljava/lang/invoke/VarHandle$AccessType;
0 14 1 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
0 14 2 reorder [I
1 14 3 numTrailingArgs I
2 14 4 adjustedReorder [I
4 8 5 i I
9 13 5 i I
Signature: (Ljava/lang/invoke/VarHandle$AccessType;Ljava/util/List<Ljava/lang/Class<*>;>;[I)[I
MethodParameters:
Name Flags
at
newCoordinates
reorder
private static java.lang.invoke.MethodType methodTypeFor(java.lang.invoke.VarHandle$AccessType, java.lang.invoke.MethodType, java.util.List<java.lang.Class<?>>, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/lang/invoke/VarHandle$AccessType;Ljava/lang/invoke/MethodType;Ljava/util/List;Ljava/util/List;)Ljava/lang/invoke/MethodType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokestatic java.lang.invoke.VarHandles.numTrailingArgs:(Ljava/lang/invoke/VarHandle$AccessType;)I
istore 4
start local 4 1: aload 1
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 1
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 5
start local 5 2: aload 5
aload 3
invokevirtual java.lang.invoke.MethodType.appendParameterTypes:(Ljava/util/List;)Ljava/lang/invoke/MethodType;
astore 5
3: iconst_0
istore 6
start local 6 4: goto 7
5: StackMap locals: int java.lang.invoke.MethodType int
StackMap stack:
aload 5
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
iconst_1
aload 2
invokeinterface java.util.List.size:()I
iadd
iload 6
iadd
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aastore
invokevirtual java.lang.invoke.MethodType.appendParameterTypes:([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 5
6: iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 4
if_icmplt 5
end local 6 8: 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 9 0 at Ljava/lang/invoke/VarHandle$AccessType;
0 9 1 oldType Ljava/lang/invoke/MethodType;
0 9 2 oldCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
0 9 3 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
1 9 4 numTrailingArgs I
2 9 5 adjustedType Ljava/lang/invoke/MethodType;
4 8 6 i I
Signature: (Ljava/lang/invoke/VarHandle$AccessType;Ljava/lang/invoke/MethodType;Ljava/util/List<Ljava/lang/Class<*>;>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
at
oldType
oldCoordinates
newCoordinates
public static java.lang.invoke.VarHandle collectCoordinates(java.lang.invoke.VarHandle, int, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/VarHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/VarHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
1: aload 2
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
2: aload 2
invokestatic java.lang.invoke.VarHandles.noCheckedExceptions:(Ljava/lang/invoke/MethodHandle;)V
3: aload 0
invokevirtual java.lang.invoke.VarHandle.coordinateTypes:()Ljava/util/List;
astore 3
start local 3 4: iload 1
iflt 5
iload 1
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 6
5: StackMap locals: java.util.List
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Invalid position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " for coordinate types"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 8
7: new java.lang.StringBuilder
dup
ldc "Invalid filter type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " ; filter cannot be void"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 3
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
if_acmpeq 10
9: new java.lang.StringBuilder
dup
ldc "Invalid filter type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " for coordinate type "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
10: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 11: aload 4
iload 1
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
12: aload 4
iload 1
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
invokeinterface java.util.List.addAll:(ILjava/util/Collection;)Z
pop
13: new java.lang.invoke.IndirectVarHandle
dup
aload 0
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 4
iconst_0
anewarray java.lang.Class
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
14: iload 1
aload 2
invokedynamic apply(ILjava/lang/invoke/MethodHandle;)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/VarHandles.lambda$4(ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
15: invokespecial java.lang.invoke.IndirectVarHandle.<init>:(Ljava/lang/invoke/VarHandle;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/function/BiFunction;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 target Ljava/lang/invoke/VarHandle;
0 16 1 pos I
0 16 2 filter Ljava/lang/invoke/MethodHandle;
4 16 3 targetCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
11 16 4 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
target
pos
filter
public static java.lang.invoke.VarHandle dropCoordinates(java.lang.invoke.VarHandle, int, java.lang.Class<?>[]);
descriptor: (Ljava/lang/invoke/VarHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
1: aload 2
invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
pop
2: aload 0
invokevirtual java.lang.invoke.VarHandle.coordinateTypes:()Ljava/util/List;
astore 3
start local 3 3: iload 1
iflt 4
iload 1
aload 3
invokeinterface java.util.List.size:()I
if_icmple 5
4: StackMap locals: java.util.List
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Invalid position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " for coordinate types"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
aload 2
arraylength
ifne 6
aload 0
areturn
6: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 7: aload 4
iload 1
aload 2
invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(ILjava/util/Collection;)Z
pop
8: new java.lang.invoke.IndirectVarHandle
dup
aload 0
aload 0
invokevirtual java.lang.invoke.VarHandle.varType:()Ljava/lang/Class;
aload 4
iconst_0
anewarray java.lang.Class
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
9: iload 1
aload 2
invokedynamic apply(I[Ljava/lang/Class;)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/VarHandles.lambda$5(I[Ljava/lang/Class;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
10: invokespecial java.lang.invoke.IndirectVarHandle.<init>:(Ljava/lang/invoke/VarHandle;Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/function/BiFunction;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 target Ljava/lang/invoke/VarHandle;
0 11 1 pos I
0 11 2 valueTypes [Ljava/lang/Class;
3 11 3 targetCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
7 11 4 newCoordinates Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/lang/invoke/VarHandle;I[Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
target
pos
valueTypes
private static void noCheckedExceptions(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
instanceof java.lang.invoke.DirectMethodHandle
ifeq 25
1: aload 0
checkcast java.lang.invoke.DirectMethodHandle
astore 1
start local 1 2: aload 1
getfield java.lang.invoke.DirectMethodHandle.member:Ljava/lang/invoke/MemberName;
invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
istore 2
start local 2 3: new java.lang.invoke.InfoFromMemberName
dup
4: getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
5: aload 1
getfield java.lang.invoke.DirectMethodHandle.member:Ljava/lang/invoke/MemberName;
6: iload 2
7: invokespecial java.lang.invoke.InfoFromMemberName.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/invoke/MemberName;B)V
astore 3
start local 3 8: iload 2
invokestatic java.lang.invoke.MethodHandleNatives.refKindIsMethod:(B)Z
ifeq 13
9: aload 3
ldc Ljava/lang/reflect/Method;
getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
invokeinterface java.lang.invoke.MethodHandleInfo.reflectAs:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;
checkcast java.lang.reflect.Method
10: invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
11: astore 4
start local 4 12: goto 22
end local 4 StackMap locals: java.lang.invoke.DirectMethodHandle int java.lang.invoke.MethodHandleInfo
StackMap stack:
13: iload 2
invokestatic java.lang.invoke.MethodHandleNatives.refKindIsField:(B)Z
ifeq 16
14: aconst_null
astore 4
start local 4 15: goto 22
end local 4 StackMap locals:
StackMap stack:
16: iload 2
invokestatic java.lang.invoke.MethodHandleNatives.refKindIsConstructor:(B)Z
ifeq 21
17: aload 3
ldc Ljava/lang/reflect/Constructor;
getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
invokeinterface java.lang.invoke.MethodHandleInfo.reflectAs:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;
checkcast java.lang.reflect.Constructor
18: invokevirtual java.lang.reflect.Constructor.getExceptionTypes:()[Ljava/lang/Class;
19: astore 4
start local 4 20: goto 22
end local 4 21: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "Cannot get here"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
start local 4 22: StackMap locals: java.lang.Class[]
StackMap stack:
aload 4
ifnull 36
23: aload 4
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/lang/invoke/VarHandles.isCheckedException(Ljava/lang/Class;)Z (6)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 36
24: ldc "Cannot adapt a var handle with a method handle which throws checked exceptions"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 end local 3 end local 2 end local 1 25: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
instanceof java.lang.invoke.DelegatingMethodHandle
ifeq 28
26: aload 0
checkcast java.lang.invoke.DelegatingMethodHandle
invokevirtual java.lang.invoke.DelegatingMethodHandle.getTarget:()Ljava/lang/invoke/MethodHandle;
invokestatic java.lang.invoke.VarHandles.noCheckedExceptions:(Ljava/lang/invoke/MethodHandle;)V
27: goto 36
28: StackMap locals:
StackMap stack:
aload 0
checkcast java.lang.invoke.BoundMethodHandle
astore 1
start local 1 29: iconst_0
istore 2
start local 2 30: goto 35
31: StackMap locals: java.lang.invoke.BoundMethodHandle int
StackMap stack:
aload 1
iload 2
invokevirtual java.lang.invoke.BoundMethodHandle.arg:(I)Ljava/lang/Object;
astore 3
start local 3 32: aload 3
instanceof java.lang.invoke.MethodHandle
ifeq 34
33: aload 3
checkcast java.lang.invoke.MethodHandle
invokestatic java.lang.invoke.VarHandles.noCheckedExceptions:(Ljava/lang/invoke/MethodHandle;)V
end local 3 34: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
35: iload 2
aload 1
invokevirtual java.lang.invoke.BoundMethodHandle.fieldCount:()I
if_icmplt 31
end local 2 end local 1 36: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 handle Ljava/lang/invoke/MethodHandle;
2 25 1 directHandle Ljava/lang/invoke/DirectMethodHandle;
3 25 2 refKind B
8 25 3 info Ljava/lang/invoke/MethodHandleInfo;
12 13 4 exceptionTypes [Ljava/lang/Class;
15 16 4 exceptionTypes [Ljava/lang/Class;
20 21 4 exceptionTypes [Ljava/lang/Class;
22 25 4 exceptionTypes [Ljava/lang/Class;
29 36 1 boundHandle Ljava/lang/invoke/BoundMethodHandle;
30 36 2 i I
32 34 3 arg Ljava/lang/Object;
MethodParameters:
Name Flags
handle
private static boolean isCheckedException(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Ljava/lang/Throwable;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 4
1: ldc Ljava/lang/RuntimeException;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 4
2: ldc Ljava/lang/Error;
aload 0
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
static int[] $SWITCH_TABLE$java$lang$invoke$VarHandle$AccessType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.invoke.VarHandles.$SWITCH_TABLE$java$lang$invoke$VarHandle$AccessType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.invoke.VarHandle$AccessType.values:()[Ljava/lang/invoke/VarHandle$AccessType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.invoke.VarHandle$AccessType.COMPARE_AND_EXCHANGE:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.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.VarHandle$AccessType.COMPARE_AND_SET:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.lang.invoke.VarHandle$AccessType.GET:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.lang.invoke.VarHandle$AccessType.GET_AND_UPDATE:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
iconst_5
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.lang.invoke.VarHandle$AccessType.SET:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
iconst_2
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic java.lang.invoke.VarHandles.$SWITCH_TABLE$java$lang$invoke$VarHandle$AccessType:[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
private static java.lang.invoke.MethodHandle lambda$0(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.util.List, java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/util/List;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=8, locals=8, args_size=5
start local 3 start local 4 0: aload 4
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
istore 5
start local 5 1: invokestatic java.lang.invoke.VarHandles.$SWITCH_TABLE$java$lang$invoke$VarHandle$AccessType:()[I
aload 3
getfield java.lang.invoke.VarHandle$AccessMode.at:Ljava/lang/invoke/VarHandle$AccessType;
invokevirtual java.lang.invoke.VarHandle$AccessType.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 2
2: 3
3: 26
4: 12
5: 4
default: 34
}
2: StackMap locals: int
StackMap stack:
aload 4
aload 0
invokestatic java.lang.invoke.MethodHandles.collectReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
goto 35
3: StackMap locals:
StackMap stack:
aload 4
iload 5
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
goto 35
4: StackMap locals:
StackMap stack:
aload 4
aload 0
invokestatic java.lang.invoke.MethodHandles.collectReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 5: aload 6
iload 5
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 6: aload 2
invokeinterface java.util.List.size:()I
ifle 11
7: aload 7
iload 5
8: iload 5
aload 2
invokeinterface java.util.List.size:()I
iadd
iconst_1
iadd
9: aload 2
invokeinterface java.util.List.size:()I
10: invokestatic java.lang.invoke.VarHandles.joinDuplicateArgs:(Ljava/lang/invoke/MethodHandle;III)Ljava/lang/invoke/MethodHandle;
astore 7
11: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
aload 7
goto 35
end local 7 end local 6 12: StackMap locals:
StackMap stack:
aload 4
aload 0
invokestatic java.lang.invoke.MethodHandles.collectReturnValue:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 13: aload 6
iload 5
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 6
14: aload 2
invokeinterface java.util.List.size:()I
ifle 19
15: aload 6
iload 5
16: iload 5
aload 2
invokeinterface java.util.List.size:()I
iadd
iconst_1
iadd
17: aload 2
invokeinterface java.util.List.size:()I
18: invokestatic java.lang.invoke.VarHandles.joinDuplicateArgs:(Ljava/lang/invoke/MethodHandle;III)Ljava/lang/invoke/MethodHandle;
astore 6
19: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 6
iload 5
iconst_1
isub
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 20: aload 2
invokeinterface java.util.List.size:()I
ifle 25
21: aload 7
iload 5
iconst_1
isub
22: iload 5
aload 2
invokeinterface java.util.List.size:()I
iadd
23: aload 2
invokeinterface java.util.List.size:()I
24: invokestatic java.lang.invoke.VarHandles.joinDuplicateArgs:(Ljava/lang/invoke/MethodHandle;III)Ljava/lang/invoke/MethodHandle;
astore 7
25: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 7
goto 35
end local 7 end local 6 26: StackMap locals:
StackMap stack:
aload 4
iload 5
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 27: aload 6
iload 5
iconst_1
isub
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 28: aload 2
invokeinterface java.util.List.size:()I
ifle 33
29: aload 7
iload 5
iconst_1
isub
30: iload 5
aload 2
invokeinterface java.util.List.size:()I
iadd
31: aload 2
invokeinterface java.util.List.size:()I
32: invokestatic java.lang.invoke.VarHandles.joinDuplicateArgs:(Ljava/lang/invoke/MethodHandle;III)Ljava/lang/invoke/MethodHandle;
astore 7
33: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
aload 7
goto 35
end local 7 end local 6 StackMap locals:
StackMap stack:
34: new java.lang.IncompatibleClassChangeError
dup
invokespecial java.lang.IncompatibleClassChangeError.<init>:()V
athrow
35: StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
areturn
end local 5 end local 4 end local 3 LocalVariableTable:
Start End Slot Name Signature
0 36 3 mode Ljava/lang/invoke/VarHandle$AccessMode;
0 36 4 modeHandle Ljava/lang/invoke/MethodHandle;
1 36 5 lastParameterPos I
5 12 6 adapter Ljava/lang/invoke/MethodHandle;
6 12 7 res Ljava/lang/invoke/MethodHandle;
13 26 6 adapter Ljava/lang/invoke/MethodHandle;
20 26 7 res Ljava/lang/invoke/MethodHandle;
27 34 6 adapter Ljava/lang/invoke/MethodHandle;
28 34 7 res Ljava/lang/invoke/MethodHandle;
private static java.lang.invoke.MethodHandle lambda$1(int, java.lang.invoke.MethodHandle[], java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodHandle);
descriptor: (I[Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 2 start local 3 0: aload 3
iconst_1
iload 0
iadd
aload 1
invokestatic java.lang.invoke.MethodHandles.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 mode Ljava/lang/invoke/VarHandle$AccessMode;
0 1 3 modeHandle Ljava/lang/invoke/MethodHandle;
private static java.lang.invoke.MethodHandle lambda$2(int, java.lang.Object[], java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodHandle);
descriptor: (I[Ljava/lang/Object;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 2 start local 3 0: aload 3
iconst_1
iload 0
iadd
aload 1
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 mode Ljava/lang/invoke/VarHandle$AccessMode;
0 1 3 modeHandle Ljava/lang/invoke/MethodHandle;
private static java.lang.invoke.MethodHandle lambda$3(java.util.List, java.util.List, int[], java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodHandle);
descriptor: (Ljava/util/List;Ljava/util/List;[ILjava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
start local 3 start local 4 0: aload 4
1: aload 3
getfield java.lang.invoke.VarHandle$AccessMode.at:Ljava/lang/invoke/VarHandle$AccessType;
aload 4
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 0
aload 1
invokestatic java.lang.invoke.VarHandles.methodTypeFor:(Ljava/lang/invoke/VarHandle$AccessType;Ljava/lang/invoke/MethodType;Ljava/util/List;Ljava/util/List;)Ljava/lang/invoke/MethodType;
2: aload 3
getfield java.lang.invoke.VarHandle$AccessMode.at:Ljava/lang/invoke/VarHandle$AccessType;
aload 1
aload 2
invokestatic java.lang.invoke.VarHandles.reorderArrayFor:(Ljava/lang/invoke/VarHandle$AccessType;Ljava/util/List;[I)[I
3: invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
4: areturn
end local 4 end local 3 LocalVariableTable:
Start End Slot Name Signature
0 5 3 mode Ljava/lang/invoke/VarHandle$AccessMode;
0 5 4 modeHandle Ljava/lang/invoke/MethodHandle;
private static java.lang.invoke.MethodHandle lambda$4(int, java.lang.invoke.MethodHandle, java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodHandle);
descriptor: (ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 2 start local 3 0: aload 3
iconst_1
iload 0
iadd
aload 1
invokestatic java.lang.invoke.MethodHandles.collectArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 mode Ljava/lang/invoke/VarHandle$AccessMode;
0 1 3 modeHandle Ljava/lang/invoke/MethodHandle;
private static java.lang.invoke.MethodHandle lambda$5(int, java.lang.Class[], java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodHandle);
descriptor: (I[Ljava/lang/Class;Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 2 start local 3 0: aload 3
iconst_1
iload 0
iadd
aload 1
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 mode Ljava/lang/invoke/VarHandle$AccessMode;
0 1 3 modeHandle Ljava/lang/invoke/MethodHandle;
}
SourceFile: "VarHandles.java"
NestMembers:
java.lang.invoke.VarHandles$1
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
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
final Array = java.lang.invoke.VarHandleBooleans$Array of java.lang.invoke.VarHandleBooleans
FieldInstanceReadOnly = java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly of java.lang.invoke.VarHandleBooleans
final FieldInstanceReadWrite = java.lang.invoke.VarHandleBooleans$FieldInstanceReadWrite of java.lang.invoke.VarHandleBooleans
FieldStaticReadOnly = java.lang.invoke.VarHandleBooleans$FieldStaticReadOnly of java.lang.invoke.VarHandleBooleans
final FieldStaticReadWrite = java.lang.invoke.VarHandleBooleans$FieldStaticReadWrite of java.lang.invoke.VarHandleBooleans
final ArrayHandle = java.lang.invoke.VarHandleByteArrayAsChars$ArrayHandle of java.lang.invoke.VarHandleByteArrayAsChars
final ByteBufferHandle = java.lang.invoke.VarHandleByteArrayAsChars$ByteBufferHandle of java.lang.invoke.VarHandleByteArrayAsChars
final ArrayHandle = java.lang.invoke.VarHandleByteArrayAsDoubles$ArrayHandle of java.lang.invoke.VarHandleByteArrayAsDoubles
final ByteBufferHandle = java.lang.invoke.VarHandleByteArrayAsDoubles$ByteBufferHandle of java.lang.invoke.VarHandleByteArrayAsDoubles
final ArrayHandle = java.lang.invoke.VarHandleByteArrayAsFloats$ArrayHandle of java.lang.invoke.VarHandleByteArrayAsFloats
final ByteBufferHandle = java.lang.invoke.VarHandleByteArrayAsFloats$ByteBufferHandle of java.lang.invoke.VarHandleByteArrayAsFloats
final ArrayHandle = java.lang.invoke.VarHandleByteArrayAsInts$ArrayHandle of java.lang.invoke.VarHandleByteArrayAsInts
final ByteBufferHandle = java.lang.invoke.VarHandleByteArrayAsInts$ByteBufferHandle of java.lang.invoke.VarHandleByteArrayAsInts
final ArrayHandle = java.lang.invoke.VarHandleByteArrayAsLongs$ArrayHandle of java.lang.invoke.VarHandleByteArrayAsLongs
final ByteBufferHandle = java.lang.invoke.VarHandleByteArrayAsLongs$ByteBufferHandle of java.lang.invoke.VarHandleByteArrayAsLongs
final ArrayHandle = java.lang.invoke.VarHandleByteArrayAsShorts$ArrayHandle of java.lang.invoke.VarHandleByteArrayAsShorts
final ByteBufferHandle = java.lang.invoke.VarHandleByteArrayAsShorts$ByteBufferHandle of java.lang.invoke.VarHandleByteArrayAsShorts
final Array = java.lang.invoke.VarHandleBytes$Array of java.lang.invoke.VarHandleBytes
FieldInstanceReadOnly = java.lang.invoke.VarHandleBytes$FieldInstanceReadOnly of java.lang.invoke.VarHandleBytes
final FieldInstanceReadWrite = java.lang.invoke.VarHandleBytes$FieldInstanceReadWrite of java.lang.invoke.VarHandleBytes
FieldStaticReadOnly = java.lang.invoke.VarHandleBytes$FieldStaticReadOnly of java.lang.invoke.VarHandleBytes
final FieldStaticReadWrite = java.lang.invoke.VarHandleBytes$FieldStaticReadWrite of java.lang.invoke.VarHandleBytes
final Array = java.lang.invoke.VarHandleChars$Array of java.lang.invoke.VarHandleChars
FieldInstanceReadOnly = java.lang.invoke.VarHandleChars$FieldInstanceReadOnly of java.lang.invoke.VarHandleChars
final FieldInstanceReadWrite = java.lang.invoke.VarHandleChars$FieldInstanceReadWrite of java.lang.invoke.VarHandleChars
FieldStaticReadOnly = java.lang.invoke.VarHandleChars$FieldStaticReadOnly of java.lang.invoke.VarHandleChars
final FieldStaticReadWrite = java.lang.invoke.VarHandleChars$FieldStaticReadWrite of java.lang.invoke.VarHandleChars
final Array = java.lang.invoke.VarHandleDoubles$Array of java.lang.invoke.VarHandleDoubles
FieldInstanceReadOnly = java.lang.invoke.VarHandleDoubles$FieldInstanceReadOnly of java.lang.invoke.VarHandleDoubles
final FieldInstanceReadWrite = java.lang.invoke.VarHandleDoubles$FieldInstanceReadWrite of java.lang.invoke.VarHandleDoubles
FieldStaticReadOnly = java.lang.invoke.VarHandleDoubles$FieldStaticReadOnly of java.lang.invoke.VarHandleDoubles
final FieldStaticReadWrite = java.lang.invoke.VarHandleDoubles$FieldStaticReadWrite of java.lang.invoke.VarHandleDoubles
final Array = java.lang.invoke.VarHandleFloats$Array of java.lang.invoke.VarHandleFloats
FieldInstanceReadOnly = java.lang.invoke.VarHandleFloats$FieldInstanceReadOnly of java.lang.invoke.VarHandleFloats
final FieldInstanceReadWrite = java.lang.invoke.VarHandleFloats$FieldInstanceReadWrite of java.lang.invoke.VarHandleFloats
FieldStaticReadOnly = java.lang.invoke.VarHandleFloats$FieldStaticReadOnly of java.lang.invoke.VarHandleFloats
final FieldStaticReadWrite = java.lang.invoke.VarHandleFloats$FieldStaticReadWrite of java.lang.invoke.VarHandleFloats
final Array = java.lang.invoke.VarHandleInts$Array of java.lang.invoke.VarHandleInts
FieldInstanceReadOnly = java.lang.invoke.VarHandleInts$FieldInstanceReadOnly of java.lang.invoke.VarHandleInts
final FieldInstanceReadWrite = java.lang.invoke.VarHandleInts$FieldInstanceReadWrite of java.lang.invoke.VarHandleInts
FieldStaticReadOnly = java.lang.invoke.VarHandleInts$FieldStaticReadOnly of java.lang.invoke.VarHandleInts
final FieldStaticReadWrite = java.lang.invoke.VarHandleInts$FieldStaticReadWrite of java.lang.invoke.VarHandleInts
final Array = java.lang.invoke.VarHandleLongs$Array of java.lang.invoke.VarHandleLongs
FieldInstanceReadOnly = java.lang.invoke.VarHandleLongs$FieldInstanceReadOnly of java.lang.invoke.VarHandleLongs
final FieldInstanceReadWrite = java.lang.invoke.VarHandleLongs$FieldInstanceReadWrite of java.lang.invoke.VarHandleLongs
FieldStaticReadOnly = java.lang.invoke.VarHandleLongs$FieldStaticReadOnly of java.lang.invoke.VarHandleLongs
final FieldStaticReadWrite = java.lang.invoke.VarHandleLongs$FieldStaticReadWrite of java.lang.invoke.VarHandleLongs
final Array = java.lang.invoke.VarHandleReferences$Array of java.lang.invoke.VarHandleReferences
FieldInstanceReadOnly = java.lang.invoke.VarHandleReferences$FieldInstanceReadOnly of java.lang.invoke.VarHandleReferences
final FieldInstanceReadWrite = java.lang.invoke.VarHandleReferences$FieldInstanceReadWrite of java.lang.invoke.VarHandleReferences
FieldStaticReadOnly = java.lang.invoke.VarHandleReferences$FieldStaticReadOnly of java.lang.invoke.VarHandleReferences
final FieldStaticReadWrite = java.lang.invoke.VarHandleReferences$FieldStaticReadWrite of java.lang.invoke.VarHandleReferences
final Array = java.lang.invoke.VarHandleShorts$Array of java.lang.invoke.VarHandleShorts
FieldInstanceReadOnly = java.lang.invoke.VarHandleShorts$FieldInstanceReadOnly of java.lang.invoke.VarHandleShorts
final FieldInstanceReadWrite = java.lang.invoke.VarHandleShorts$FieldInstanceReadWrite of java.lang.invoke.VarHandleShorts
FieldStaticReadOnly = java.lang.invoke.VarHandleShorts$FieldStaticReadOnly of java.lang.invoke.VarHandleShorts
final FieldStaticReadWrite = java.lang.invoke.VarHandleShorts$FieldStaticReadWrite of java.lang.invoke.VarHandleShorts
java.lang.invoke.VarHandles$1