class jdk.dynalink.beans.DynamicMethodLinker implements jdk.dynalink.linker.TypeBasedGuardingDynamicLinker
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.dynalink.beans.DynamicMethodLinker
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // jdk.dynalink.beans.DynamicMethodLinker this
0: .line 82
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // jdk.dynalink.beans.DynamicMethodLinker this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/DynamicMethodLinker;
public boolean canLinkType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // jdk.dynalink.beans.DynamicMethodLinker this
start local 1 // java.lang.Class type
0: .line 85
ldc Ljdk/dynalink/beans/DynamicMethod;
aload 1 /* type */
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ireturn
end local 1 // java.lang.Class type
end local 0 // jdk.dynalink.beans.DynamicMethodLinker this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/DynamicMethodLinker;
0 1 1 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
type final
public jdk.dynalink.linker.GuardedInvocation getGuardedInvocation(jdk.dynalink.linker.LinkRequest, jdk.dynalink.linker.LinkerServices);
descriptor: (Ljdk/dynalink/linker/LinkRequest;Ljdk/dynalink/linker/LinkerServices;)Ljdk/dynalink/linker/GuardedInvocation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=10, args_size=3
start local 0 // jdk.dynalink.beans.DynamicMethodLinker this
start local 1 // jdk.dynalink.linker.LinkRequest linkRequest
start local 2 // jdk.dynalink.linker.LinkerServices linkerServices
0: .line 90
aload 1 /* linkRequest */
invokeinterface jdk.dynalink.linker.LinkRequest.getReceiver:()Ljava/lang/Object;
astore 3 /* receiver */
start local 3 // java.lang.Object receiver
1: .line 91
aload 3 /* receiver */
instanceof jdk.dynalink.beans.DynamicMethod
ifne 3
2: .line 92
aconst_null
areturn
3: .line 94
StackMap locals: java.lang.Object
StackMap stack:
aload 3 /* receiver */
checkcast jdk.dynalink.beans.DynamicMethod
astore 4 /* dynMethod */
start local 4 // jdk.dynalink.beans.DynamicMethod dynMethod
4: .line 95
aload 4 /* dynMethod */
invokevirtual jdk.dynalink.beans.DynamicMethod.isConstructor:()Z
istore 5 /* constructor */
start local 5 // boolean constructor
5: .line 98
aload 1 /* linkRequest */
invokeinterface jdk.dynalink.linker.LinkRequest.getCallSiteDescriptor:()Ljdk/dynalink/CallSiteDescriptor;
astore 7 /* desc */
start local 7 // jdk.dynalink.CallSiteDescriptor desc
6: .line 99
aload 7 /* desc */
invokevirtual jdk.dynalink.CallSiteDescriptor.getOperation:()Ljdk/dynalink/Operation;
invokestatic jdk.dynalink.NamedOperation.getBaseOperation:(Ljdk/dynalink/Operation;)Ljdk/dynalink/Operation;
astore 8 /* op */
start local 8 // jdk.dynalink.Operation op
7: .line 100
aload 8 /* op */
getstatic jdk.dynalink.StandardOperation.CALL:Ljdk/dynalink/StandardOperation;
if_acmpne 14
iload 5 /* constructor */
ifne 14
8: .line 101
aload 4 /* dynMethod */
aload 7 /* desc */
9: .line 102
aload 7 /* desc */
invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
iconst_0
iconst_1
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
10: .line 101
invokevirtual jdk.dynalink.CallSiteDescriptor.changeMethodType:(Ljava/lang/invoke/MethodType;)Ljdk/dynalink/CallSiteDescriptor;
11: .line 102
aload 2 /* linkerServices */
12: .line 101
invokevirtual jdk.dynalink.beans.DynamicMethod.getInvocation:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
astore 6 /* invocation */
start local 6 // java.lang.invoke.MethodHandle invocation
13: .line 103
goto 21
end local 6 // java.lang.invoke.MethodHandle invocation
StackMap locals: jdk.dynalink.beans.DynamicMethodLinker jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.LinkerServices java.lang.Object jdk.dynalink.beans.DynamicMethod int top jdk.dynalink.CallSiteDescriptor jdk.dynalink.Operation
StackMap stack:
14: aload 8 /* op */
getstatic jdk.dynalink.StandardOperation.NEW:Ljdk/dynalink/StandardOperation;
if_acmpne 20
iload 5 /* constructor */
ifeq 20
15: .line 104
aload 4 /* dynMethod */
aload 7 /* desc */
aload 2 /* linkerServices */
invokevirtual jdk.dynalink.beans.DynamicMethod.getInvocation:(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
astore 9 /* ctorInvocation */
start local 9 // java.lang.invoke.MethodHandle ctorInvocation
16: .line 105
aload 9 /* ctorInvocation */
ifnonnull 18
17: .line 106
aconst_null
areturn
18: .line 110
StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 9 /* ctorInvocation */
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aconst_null
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
astore 6 /* invocation */
end local 9 // java.lang.invoke.MethodHandle ctorInvocation
start local 6 // java.lang.invoke.MethodHandle invocation
19: .line 111
goto 21
end local 6 // java.lang.invoke.MethodHandle invocation
20: .line 112
StackMap locals:
StackMap stack:
aconst_null
areturn
start local 6 // java.lang.invoke.MethodHandle invocation
21: .line 115
StackMap locals: jdk.dynalink.beans.DynamicMethodLinker jdk.dynalink.linker.LinkRequest jdk.dynalink.linker.LinkerServices java.lang.Object jdk.dynalink.beans.DynamicMethod int java.lang.invoke.MethodHandle jdk.dynalink.CallSiteDescriptor jdk.dynalink.Operation
StackMap stack:
aload 6 /* invocation */
ifnull 27
22: .line 116
new jdk.dynalink.linker.GuardedInvocation
dup
aload 6 /* invocation */
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
23: .line 117
aload 7 /* desc */
invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aastore
24: .line 116
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
25: .line 117
aload 3 /* receiver */
invokestatic jdk.dynalink.linker.support.Guards.getIdentityGuard:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
26: .line 116
invokespecial jdk.dynalink.linker.GuardedInvocation.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
areturn
27: .line 120
StackMap locals:
StackMap stack:
aconst_null
areturn
end local 8 // jdk.dynalink.Operation op
end local 7 // jdk.dynalink.CallSiteDescriptor desc
end local 6 // java.lang.invoke.MethodHandle invocation
end local 5 // boolean constructor
end local 4 // jdk.dynalink.beans.DynamicMethod dynMethod
end local 3 // java.lang.Object receiver
end local 2 // jdk.dynalink.linker.LinkerServices linkerServices
end local 1 // jdk.dynalink.linker.LinkRequest linkRequest
end local 0 // jdk.dynalink.beans.DynamicMethodLinker this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/dynalink/beans/DynamicMethodLinker;
0 28 1 linkRequest Ljdk/dynalink/linker/LinkRequest;
0 28 2 linkerServices Ljdk/dynalink/linker/LinkerServices;
1 28 3 receiver Ljava/lang/Object;
4 28 4 dynMethod Ljdk/dynalink/beans/DynamicMethod;
5 28 5 constructor Z
13 14 6 invocation Ljava/lang/invoke/MethodHandle;
19 20 6 invocation Ljava/lang/invoke/MethodHandle;
21 28 6 invocation Ljava/lang/invoke/MethodHandle;
6 28 7 desc Ljdk/dynalink/CallSiteDescriptor;
7 28 8 op Ljdk/dynalink/Operation;
16 19 9 ctorInvocation Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
linkRequest final
linkerServices final
}
SourceFile: "DynamicMethodLinker.java"