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.Executable target;
descriptor: Ljava/lang/reflect/Executable;
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.Executable);
descriptor: (Ljava/lang/reflect/Executable;)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/Executable;)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/Executable;
2: aload 0
aload 1
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getMethodType:(Ljava/lang/reflect/Executable;)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/Executable;
MethodParameters:
Name Flags
target final
private static java.lang.String getName(java.lang.reflect.Executable);
descriptor: (Ljava/lang/reflect/Executable;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
instanceof java.lang.reflect.Constructor
istore 1
start local 1 1: aload 0
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getMethodType:(Ljava/lang/reflect/Executable;)Ljava/lang/invoke/MethodType;
iload 1
ifeq 2
aload 0
invokevirtual java.lang.reflect.Executable.getName:()Ljava/lang/String;
goto 3
2: StackMap locals: java.lang.reflect.Executable int
StackMap stack: java.lang.invoke.MethodType
aload 0
invokevirtual java.lang.reflect.Executable.getDeclaringClass:()Ljava/lang/Class;
aload 0
invokevirtual java.lang.reflect.Executable.getName:()Ljava/lang/String;
invokestatic jdk.dynalink.beans.CallerSensitiveDynamicMethod.getClassAndMethodName:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
StackMap locals: java.lang.reflect.Executable int
StackMap stack: java.lang.invoke.MethodType java.lang.String
3: iload 1
ifeq 4
iconst_0
goto 5
StackMap locals: java.lang.reflect.Executable int
StackMap stack: java.lang.invoke.MethodType java.lang.String
4: iconst_1
5: StackMap locals: java.lang.reflect.Executable 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 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 m Ljava/lang/reflect/Executable;
1 6 1 constructor Z
MethodParameters:
Name Flags
m 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.Executable);
descriptor: (Ljava/lang/reflect/Executable;)Ljava/lang/invoke/MethodType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, 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: aload 0
invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
astore 3
start local 3 5: 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 6: aload 4
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
7: iload 1
ifeq 11
8: aload 0
invokevirtual java.lang.reflect.Executable.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 10
9: ldc Ljava/lang/Object;
goto 12
10: StackMap locals: java.lang.reflect.Executable int java.lang.Class java.lang.Class[] java.lang.invoke.MethodType
StackMap stack: java.lang.invoke.MethodType int java.lang.Class[] java.lang.Class[] int
aload 0
invokevirtual java.lang.reflect.Executable.getDeclaringClass:()Ljava/lang/Class;
goto 12
11: StackMap locals: java.lang.reflect.Executable int java.lang.Class java.lang.Class[] java.lang.invoke.MethodType
StackMap stack: java.lang.invoke.MethodType int java.lang.Class[] java.lang.Class[] int
ldc Ljdk/dynalink/beans/StaticClass;
StackMap locals: java.lang.reflect.Executable int java.lang.Class java.lang.Class[] java.lang.invoke.MethodType
StackMap stack: java.lang.invoke.MethodType int java.lang.Class[] java.lang.Class[] int java.lang.Class
12: aastore
13: invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
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 m Ljava/lang/reflect/Executable;
1 14 1 isMethod Z
4 14 2 rtype Ljava/lang/Class<*>;
5 14 3 ptypes [Ljava/lang/Class;
6 14 4 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
m 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/Executable;
invokevirtual java.lang.reflect.Executable.isVarArgs:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 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=5, args_size=2
start local 0 start local 1 0: aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
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/SecureLookupSupplier.getLookup()Ljava/lang/invoke/MethodHandles$Lookup; (5)
()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/Executable;
instanceof java.lang.reflect.Method
ifeq 8
4: aload 2
aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/Executable;
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 4
start local 4 5: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/Executable;
invokevirtual java.lang.reflect.Executable.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 7
6: aload 4
invokestatic jdk.dynalink.beans.StaticClassIntrospector.editStaticMethodHandle:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
7: StackMap locals: jdk.dynalink.beans.CallerSensitiveDynamicMethod jdk.dynalink.CallSiteDescriptor java.lang.invoke.MethodHandles$Lookup top java.lang.invoke.MethodHandle
StackMap stack:
aload 4
areturn
end local 4 8: StackMap locals: jdk.dynalink.beans.CallerSensitiveDynamicMethod jdk.dynalink.CallSiteDescriptor java.lang.invoke.MethodHandles$Lookup
StackMap stack:
aload 2
9: aload 0
getfield jdk.dynalink.beans.CallerSensitiveDynamicMethod.target:Ljava/lang/reflect/Executable;
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 4 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/Executable;
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
}
SourceFile: "CallerSensitiveDynamicMethod.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles