public class java.lang.invoke.SwitchPoint
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.lang.invoke.SwitchPoint
super_class: java.lang.Object
{
private static final java.lang.invoke.MethodHandle K_true;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle K_false;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.invoke.MutableCallSite mcs;
descriptor: Ljava/lang/invoke/MutableCallSite;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodHandle mcsInvoker;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic java.lang.invoke.MethodHandles.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
putstatic java.lang.invoke.SwitchPoint.K_true:Ljava/lang/invoke/MethodHandle;
1: getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic java.lang.invoke.MethodHandles.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
putstatic java.lang.invoke.SwitchPoint.K_false:Ljava/lang/invoke/MethodHandle;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.invoke.MutableCallSite
dup
getstatic java.lang.invoke.SwitchPoint.K_true:Ljava/lang/invoke/MethodHandle;
invokespecial java.lang.invoke.MutableCallSite.<init>:(Ljava/lang/invoke/MethodHandle;)V
putfield java.lang.invoke.SwitchPoint.mcs:Ljava/lang/invoke/MutableCallSite;
2: aload 0
aload 0
getfield java.lang.invoke.SwitchPoint.mcs:Ljava/lang/invoke/MutableCallSite;
invokevirtual java.lang.invoke.MutableCallSite.dynamicInvoker:()Ljava/lang/invoke/MethodHandle;
putfield java.lang.invoke.SwitchPoint.mcsInvoker:Ljava/lang/invoke/MethodHandle;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/SwitchPoint;
public boolean hasBeenInvalidated();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.invoke.SwitchPoint.mcs:Ljava/lang/invoke/MutableCallSite;
invokevirtual java.lang.invoke.MutableCallSite.getTarget:()Ljava/lang/invoke/MethodHandle;
getstatic java.lang.invoke.SwitchPoint.K_true:Ljava/lang/invoke/MethodHandle;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/invoke/SwitchPoint;
public java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.lang.invoke.SwitchPoint.mcs:Ljava/lang/invoke/MutableCallSite;
invokevirtual java.lang.invoke.MutableCallSite.getTarget:()Ljava/lang/invoke/MethodHandle;
getstatic java.lang.invoke.SwitchPoint.K_false:Ljava/lang/invoke/MethodHandle;
if_acmpne 2
1: aload 2
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.invoke.SwitchPoint.mcsInvoker:Ljava/lang/invoke/MethodHandle;
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/SwitchPoint;
0 3 1 target Ljava/lang/invoke/MethodHandle;
0 3 2 fallback Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
fallback
public static void invalidateAll(java.lang.invoke.SwitchPoint[]);
descriptor: ([Ljava/lang/invoke/SwitchPoint;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
arraylength
ifne 1
return
1: StackMap locals:
StackMap stack:
aload 0
arraylength
anewarray java.lang.invoke.MutableCallSite
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 9
4: StackMap locals: java.lang.invoke.MutableCallSite[] int
StackMap stack:
aload 0
iload 2
aaload
astore 3
start local 3 5: aload 3
ifnonnull 6
goto 10
6: StackMap locals: java.lang.invoke.SwitchPoint
StackMap stack:
aload 1
iload 2
aload 3
getfield java.lang.invoke.SwitchPoint.mcs:Ljava/lang/invoke/MutableCallSite;
aastore
7: aload 3
getfield java.lang.invoke.SwitchPoint.mcs:Ljava/lang/invoke/MutableCallSite;
getstatic java.lang.invoke.SwitchPoint.K_false:Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MutableCallSite.setTarget:(Ljava/lang/invoke/MethodHandle;)V
end local 3 8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 0
arraylength
if_icmplt 4
end local 2 10: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.invoke.MutableCallSite.syncAll:([Ljava/lang/invoke/MutableCallSite;)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 switchPoints [Ljava/lang/invoke/SwitchPoint;
2 12 1 sites [Ljava/lang/invoke/MutableCallSite;
3 10 2 i I
5 8 3 spt Ljava/lang/invoke/SwitchPoint;
MethodParameters:
Name Flags
switchPoints
}
SourceFile: "SwitchPoint.java"