class jdk.dynalink.beans.CallerSensitiveDynamicMethod extends jdk.dynalink.beans.SingleDynamicMethod
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.dynalink.beans.CallerSensitiveDynamicMethod
super_class: jdk.dynalink.beans.SingleDynamicMethod
{
private static final java.security.AccessControlContext GET_LOOKUP_CONTEXT;
descriptor: Ljava/security/AccessControlContext;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.reflect.AccessibleObject target;
descriptor: Ljava/lang/reflect/AccessibleObject;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodType type;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_1
anewarray java.lang.String
dup
iconst_0
1: ldc "dynalink.getLookup"
aastore
2: invokestatic jdk.dynalink.internal.AccessControlContextFactory.createAccessControlContext:([Ljava/lang/String;)Ljava/security/AccessControlContext;
putstatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.GET_LOOKUP_CONTEXT:Ljava/security/AccessControlContext;
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.reflect.AccessibleObject);
descriptor: (Ljava/lang/reflect/AccessibleObject;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getName:(Ljava/lang/reflect/AccessibleObject;)Ljava/lang/String;
invokespecial jdk.dynalink.beans.SingleDynamicMethod.<init>:(Ljava/lang/String;)V
1: aload 0
aload 1
putfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
2: aload 0
aload 1
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getMethodType:(Ljava/lang/reflect/AccessibleObject;)Ljava/lang/invoke/MethodType;
putfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.type:Ljava/lang/invoke/MethodType;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/dynalink/beans/CallerSensitiveDynamicMethod;
0 4 1 target Ljava/lang/reflect/AccessibleObject;
MethodParameters:
Name Flags
target final
private static java.lang.String getName(java.lang.reflect.AccessibleObject);
descriptor: (Ljava/lang/reflect/AccessibleObject;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
checkcast java.lang.reflect.Member
astore 1
start local 1 1: aload 1
instanceof java.lang.reflect.Constructor
istore 2
start local 2 2: aload 0
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getMethodType:(Ljava/lang/reflect/AccessibleObject;)Ljava/lang/invoke/MethodType;
iload 2
ifeq 3
aload 1
invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
goto 4
3: StackMap locals: java.lang.reflect.AccessibleObject java.lang.reflect.Member int
StackMap stack: java.lang.invoke.MethodType
aload 1
invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
aload 1
invokeinterface java.lang.reflect.Member.getName:()Ljava/lang/String;
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getClassAndMethodName:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
StackMap locals: java.lang.reflect.AccessibleObject java.lang.reflect.Member int
StackMap stack: java.lang.invoke.MethodType java.lang.String
4: iload 2
ifeq 5
iconst_0
goto 6
StackMap locals: java.lang.reflect.AccessibleObject java.lang.reflect.Member int
StackMap stack: java.lang.invoke.MethodType java.lang.String
5: iconst_1
6: StackMap locals: java.lang.reflect.AccessibleObject java.lang.reflect.Member int
StackMap stack: java.lang.invoke.MethodType java.lang.String int
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getMethodNameWithSignature:(Ljava/lang/invoke/MethodType;Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 target Ljava/lang/reflect/AccessibleObject;
1 7 1 m Ljava/lang/reflect/Member;
2 7 2 constructor Z
MethodParameters:
Name Flags
target final
java.lang.invoke.MethodType getMethodType();
descriptor: ()Ljava/lang/invoke/MethodType;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.type:Ljava/lang/invoke/MethodType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/CallerSensitiveDynamicMethod;
private static java.lang.invoke.MethodType getMethodType(java.lang.reflect.AccessibleObject);
descriptor: (Ljava/lang/reflect/AccessibleObject;)Ljava/lang/invoke/MethodType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
instanceof java.lang.reflect.Method
istore 1
start local 1 1: iload 1
ifeq 2
aload 0
checkcast java.lang.reflect.Method
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
goto 3
StackMap locals: int
StackMap stack:
2: aload 0
checkcast java.lang.reflect.Constructor
invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
3: astore 2
start local 2 4: iload 1
ifeq 5
aload 0
checkcast java.lang.reflect.Method
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
goto 6
StackMap locals: java.lang.Class
StackMap stack:
5: aload 0
checkcast java.lang.reflect.Constructor
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class[]
6: astore 3
start local 3 7: aload 2
aload 3
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 4
start local 4 8: aload 0
checkcast java.lang.reflect.Member
astore 5
start local 5 9: aload 4
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
10: iload 1
ifeq 14
11: aload 5
invokeinterface java.lang.reflect.Member.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 13
12: ldc Ljava/lang/Object;
goto 15
13: StackMap locals: java.lang.reflect.AccessibleObject int java.lang.Class java.lang.Class[] java.lang.invoke.MethodType java.lang.reflect.Member
StackMap stack: java.lang.invoke.MethodType int java.lang.Class[] java.lang.Class[] int
aload 5
invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
goto 15
14: StackMap locals: java.lang.reflect.AccessibleObject int java.lang.Class java.lang.Class[] java.lang.invoke.MethodType java.lang.reflect.Member
StackMap stack: java.lang.invoke.MethodType int java.lang.Class[] java.lang.Class[] int
ldc Ljdk/dynalink/beans/StaticClass;
StackMap locals: java.lang.reflect.AccessibleObject int java.lang.Class java.lang.Class[] java.lang.invoke.MethodType java.lang.reflect.Member
StackMap stack: java.lang.invoke.MethodType int java.lang.Class[] java.lang.Class[] int java.lang.Class
15: aastore
16: invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
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 17 0 ao Ljava/lang/reflect/AccessibleObject;
1 17 1 isMethod Z
4 17 2 rtype Ljava/lang/Class<*>;
7 17 3 ptypes [Ljava/lang/Class;
8 17 4 type Ljava/lang/invoke/MethodType;
9 17 5 m Ljava/lang/reflect/Member;
MethodParameters:
Name Flags
ao final
boolean isVarArgs();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
instanceof java.lang.reflect.Method
ifeq 1
aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
checkcast java.lang.reflect.Method
invokevirtual java.lang.reflect.Method.isVarArgs:()Z
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
checkcast java.lang.reflect.Constructor
invokevirtual java.lang.reflect.Constructor.isVarArgs:()Z
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/dynalink/beans/CallerSensitiveDynamicMethod;
java.lang.invoke.MethodHandle getTarget(jdk.dynalink.CallSiteDescriptor);
descriptor: (Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokedynamic run(Ljdk/dynalink/CallSiteDescriptor;)Ljava/security/PrivilegedAction;
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;
jdk/dynalink/beans/CallerSensitiveDynamicMethod.lambda$0(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandles$Lookup; (6)
()Ljava/lang/invoke/MethodHandles$Lookup;
1: getstatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.GET_LOOKUP_CONTEXT:Ljava/security/AccessControlContext;
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandles$Lookup
astore 2
start local 2 3: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
instanceof java.lang.reflect.Method
ifeq 8
4: aload 2
aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
checkcast java.lang.reflect.Method
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.unreflect:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
astore 3
start local 3 5: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
checkcast java.lang.reflect.Member
invokeinterface java.lang.reflect.Member.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 7
6: aload 3
invokestatic jdk.dynalink.beans.StaticClassIntrospector.editStaticMethodHandle:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
7: StackMap locals: java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandle
StackMap stack:
aload 3
areturn
end local 3 8: StackMap locals:
StackMap stack:
aload 2
9: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
checkcast java.lang.reflect.Constructor
10: invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.unreflectConstructor:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
invokestatic jdk.dynalink.beans.StaticClassIntrospector.editConstructorMethodHandle:(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 11 0 this Ljdk/dynalink/beans/CallerSensitiveDynamicMethod;
0 11 1 desc Ljdk/dynalink/CallSiteDescriptor;
3 11 2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
5 8 3 mh Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
desc final
boolean isConstructor();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/AccessibleObject;
instanceof java.lang.reflect.Constructor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/CallerSensitiveDynamicMethod;
private static java.lang.invoke.MethodHandle unreflect(java.lang.invoke.MethodHandles$Lookup, java.lang.reflect.Method);
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.dynalink.linker.support.Lookup.unreflect:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 lookup Ljava/lang/invoke/MethodHandles$Lookup;
0 1 1 m Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
lookup final
m final
private static java.lang.invoke.MethodHandle unreflectConstructor(java.lang.invoke.MethodHandles$Lookup, java.lang.reflect.Constructor<?>);
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.dynalink.linker.support.Lookup.unreflectConstructor:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 lookup Ljava/lang/invoke/MethodHandles$Lookup;
0 1 1 c Ljava/lang/reflect/Constructor<*>;
Signature: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/reflect/Constructor<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
lookup final
c final
private static java.lang.invoke.MethodHandles$Lookup lambda$0(jdk.dynalink.CallSiteDescriptor);
descriptor: (Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual jdk.dynalink.CallSiteDescriptor.getLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "CallerSensitiveDynamicMethod.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles