public class org.graalvm.compiler.bytecode.BridgeMethodUtils
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.bytecode.BridgeMethodUtils
super_class: java.lang.Object
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/bytecode/BridgeMethodUtils;
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 org.graalvm.compiler.bytecode.BridgeMethodUtils.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
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 Lorg/graalvm/compiler/bytecode/BridgeMethodUtils;
public static jdk.vm.ci.meta.ResolvedJavaMethod getBridgedMethod(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=9, args_size=1
start local 0 0: getstatic org.graalvm.compiler.bytecode.BridgeMethodUtils.$assertionsDisabled:Z
ifne 1
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isBridge:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode
dup
aload 0
invokespecial org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecode.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 1
start local 1 2: new org.graalvm.compiler.bytecode.BytecodeStream
dup
aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getCode:()[B
invokespecial org.graalvm.compiler.bytecode.BytecodeStream.<init>:([B)V
astore 2
start local 2 3: aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 3
start local 3 4: aconst_null
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 27
7: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.bytecode.Bytecode org.graalvm.compiler.bytecode.BytecodeStream int jdk.vm.ci.meta.ResolvedJavaMethod int
StackMap stack:
iload 3
tableswitch { // 182 - 191
182: 8
183: 8
184: 8
185: 8
186: 25
187: 25
188: 25
189: 25
190: 25
191: 23
default: 25
}
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.readCPI:()C
istore 6
start local 6 9: aload 1
invokeinterface org.graalvm.compiler.bytecode.Bytecode.getConstantPool:()Ljdk/vm/ci/meta/ConstantPool;
astore 7
start local 7 10: aload 7
iload 6
iload 3
invokeinterface jdk.vm.ci.meta.ConstantPool.loadReferencedType:(II)V
11: aload 7
iload 6
iload 3
invokeinterface jdk.vm.ci.meta.ConstantPool.lookupMethod:(II)Ljdk/vm/ci/meta/JavaMethod;
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
astore 8
start local 8 12: aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
13: invokestatic org.graalvm.compiler.bytecode.BridgeMethodUtils.assertionsEnabled:()Z
ifne 15
14: aload 8
areturn
15: StackMap locals: int jdk.vm.ci.meta.ConstantPool jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
getstatic org.graalvm.compiler.bytecode.BridgeMethodUtils.$assertionsDisabled:Z
ifne 18
aload 4
ifnull 18
aload 4
aload 8
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 18
new java.lang.AssertionError
dup
ldc "Found calls to different methods named %s in bridge method %s%n callee 1: %s%n callee 2: %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
16: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
ldc "%R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_2
aload 4
ldc "%R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_3
aload 8
ldc "%R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
17: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
18: StackMap locals:
StackMap stack:
aload 8
astore 4
19: goto 25
StackMap locals:
StackMap stack:
20: aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
ldc "<init>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getName:()Ljava/lang/String;
ldc "Ljava/lang/AbstractMethodError;"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
21: iconst_1
istore 5
22: goto 25
end local 8 end local 7 end local 6 23: StackMap locals:
StackMap stack:
iload 5
ifeq 25
24: aconst_null
areturn
25: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.next:()V
26: aload 2
invokevirtual org.graalvm.compiler.bytecode.BytecodeStream.currentBC:()I
istore 3
27: StackMap locals:
StackMap stack:
iload 3
sipush 256
if_icmpne 7
28: aload 4
ifnonnull 31
29: new org.graalvm.compiler.bytecode.BytecodeDisassembler
dup
invokespecial org.graalvm.compiler.bytecode.BytecodeDisassembler.<init>:()V
aload 0
invokevirtual org.graalvm.compiler.bytecode.BytecodeDisassembler.disassemble:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
astore 6
start local 6 30: new java.lang.InternalError
dup
ldc "Couldn't find method bridged by %s:%n%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
ldc "%R %H.%n(%P)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aastore
dup
iconst_1
aload 6
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 6 31: StackMap locals:
StackMap stack:
aload 4
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 32 0 bridge Ljdk/vm/ci/meta/ResolvedJavaMethod;
2 32 1 code Lorg/graalvm/compiler/bytecode/Bytecode;
3 32 2 stream Lorg/graalvm/compiler/bytecode/BytecodeStream;
4 32 3 opcode I
5 32 4 bridged Ljdk/vm/ci/meta/ResolvedJavaMethod;
6 32 5 calledAbstractMethodErrorConstructor Z
9 23 6 cpi I
10 23 7 cp Ljdk/vm/ci/meta/ConstantPool;
12 23 8 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
30 31 6 dis Ljava/lang/String;
MethodParameters:
Name Flags
bridge
private static boolean assertionsEnabled();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: iconst_0
istore 0
start local 0 1: getstatic org.graalvm.compiler.bytecode.BridgeMethodUtils.$assertionsDisabled:Z
ifne 2
iconst_1
dup
istore 0
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 enabled Z
public static <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 2
start local 2 1: aload 2
ifnonnull 5
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isBridge:()Z
ifeq 5
2: aload 1
invokestatic org.graalvm.compiler.bytecode.BridgeMethodUtils.getBridgedMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 3
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 2
end local 3 5: StackMap locals: java.lang.annotation.Annotation
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 annotationClass Ljava/lang/Class<TT;>;
0 6 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 2 a TT;
3 5 3 bridged Ljdk/vm/ci/meta/ResolvedJavaMethod;
Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;Ljdk/vm/ci/meta/ResolvedJavaMethod;)TT;
MethodParameters:
Name Flags
annotationClass
method
public static java.lang.annotation.Annotation[] getAnnotations(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)[Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotations:()[Ljava/lang/annotation/Annotation;
astore 1
start local 1 1: aload 1
arraylength
ifne 5
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isBridge:()Z
ifeq 5
2: aload 0
invokestatic org.graalvm.compiler.bytecode.BridgeMethodUtils.getBridgedMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotations:()[Ljava/lang/annotation/Annotation;
astore 1
end local 2 5: StackMap locals: java.lang.annotation.Annotation[]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 1 a [Ljava/lang/annotation/Annotation;
3 5 2 bridged Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public static java.lang.annotation.Annotation[] getDeclaredAnnotations(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)[Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotations:()[Ljava/lang/annotation/Annotation;
astore 1
start local 1 1: aload 1
arraylength
ifne 5
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isBridge:()Z
ifeq 5
2: aload 0
invokestatic org.graalvm.compiler.bytecode.BridgeMethodUtils.getBridgedMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaredAnnotations:()[Ljava/lang/annotation/Annotation;
astore 1
end local 2 5: StackMap locals: java.lang.annotation.Annotation[]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 1 a [Ljava/lang/annotation/Annotation;
3 5 2 bridged Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public static java.lang.annotation.Annotation[][] getParameterAnnotations(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)[[Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getParameterAnnotations:()[[Ljava/lang/annotation/Annotation;
astore 1
start local 1 1: aload 1
arraylength
ifne 5
aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isBridge:()Z
ifeq 5
2: aload 0
invokestatic org.graalvm.compiler.bytecode.BridgeMethodUtils.getBridgedMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 2
start local 2 3: aload 2
ifnull 5
4: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getParameterAnnotations:()[[Ljava/lang/annotation/Annotation;
astore 1
end local 2 5: StackMap locals: java.lang.annotation.Annotation[][]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 1 a [[Ljava/lang/annotation/Annotation;
3 5 2 bridged Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public static <T extends java.lang.annotation.Annotation> T getParameterAnnotation(java.lang.Class<T>, int, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljava/lang/Class;ILjdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
iload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getParameterAnnotation:(Ljava/lang/Class;I)Ljava/lang/annotation/Annotation;
astore 3
start local 3 1: aload 3
ifnonnull 5
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isBridge:()Z
ifeq 5
2: aload 2
invokestatic org.graalvm.compiler.bytecode.BridgeMethodUtils.getBridgedMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 3: aload 4
ifnull 5
4: aload 4
aload 0
iload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getParameterAnnotation:(Ljava/lang/Class;I)Ljava/lang/annotation/Annotation;
astore 3
end local 4 5: StackMap locals: java.lang.annotation.Annotation
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 annotationClass Ljava/lang/Class<TT;>;
0 6 1 parameterIndex I
0 6 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 6 3 a TT;
3 5 4 bridged Ljdk/vm/ci/meta/ResolvedJavaMethod;
Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TT;>;ILjdk/vm/ci/meta/ResolvedJavaMethod;)TT;
MethodParameters:
Name Flags
annotationClass
parameterIndex
method
}
SourceFile: "BridgeMethodUtils.java"