final class jdk.jfr.internal.instrument.JIInliner extends jdk.internal.org.objectweb.asm.ClassVisitor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.jfr.internal.instrument.JIInliner
super_class: jdk.internal.org.objectweb.asm.ClassVisitor
{
private final java.lang.String targetClassName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String instrumentationClassName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.org.objectweb.asm.tree.ClassNode targetClassNode;
descriptor: Ljdk/internal/org/objectweb/asm/tree/ClassNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<java.lang.reflect.Method> instrumentationMethods;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/reflect/Method;>;
void <init>(int, jdk.internal.org.objectweb.asm.ClassVisitor, java.lang.String, java.lang.String, jdk.internal.org.objectweb.asm.ClassReader, java.util.List<java.lang.reflect.Method>);
descriptor: (ILjdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/String;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/ClassReader;Ljava/util/List;)V
flags: (0x0000)
Code:
stack=3, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
iload 1
aload 2
invokespecial jdk.internal.org.objectweb.asm.ClassVisitor.<init>:(ILjdk/internal/org/objectweb/asm/ClassVisitor;)V
1: aload 0
aload 3
putfield jdk.jfr.internal.instrument.JIInliner.targetClassName:Ljava/lang/String;
2: aload 0
aload 4
putfield jdk.jfr.internal.instrument.JIInliner.instrumentationClassName:Ljava/lang/String;
3: aload 0
aload 6
putfield jdk.jfr.internal.instrument.JIInliner.instrumentationMethods:Ljava/util/List;
4: new jdk.internal.org.objectweb.asm.tree.ClassNode
dup
ldc 327680
invokespecial jdk.internal.org.objectweb.asm.tree.ClassNode.<init>:(I)V
astore 7
start local 7 5: aload 5
aload 7
bipush 8
invokevirtual jdk.internal.org.objectweb.asm.ClassReader.accept:(Ljdk/internal/org/objectweb/asm/ClassVisitor;I)V
6: aload 0
aload 7
putfield jdk.jfr.internal.instrument.JIInliner.targetClassNode:Ljdk/internal/org/objectweb/asm/tree/ClassNode;
7: return
end local 7 end local 6 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 8 0 this Ljdk/jfr/internal/instrument/JIInliner;
0 8 1 api I
0 8 2 cv Ljdk/internal/org/objectweb/asm/ClassVisitor;
0 8 3 targetClassName Ljava/lang/String;
0 8 4 instrumentationClassName Ljava/lang/String;
0 8 5 targetClassReader Ljdk/internal/org/objectweb/asm/ClassReader;
0 8 6 instrumentationMethods Ljava/util/List<Ljava/lang/reflect/Method;>;
5 8 7 cn Ljdk/internal/org/objectweb/asm/tree/ClassNode;
Signature: (ILjdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/String;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/ClassReader;Ljava/util/List<Ljava/lang/reflect/Method;>;)V
MethodParameters:
Name Flags
api
cv
targetClassName
instrumentationClassName
targetClassReader
instrumentationMethods
public jdk.internal.org.objectweb.asm.MethodVisitor visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
descriptor: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 1
aload 2
aload 3
aload 4
aload 5
invokespecial jdk.internal.org.objectweb.asm.ClassVisitor.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
astore 6
start local 6 1: aload 0
aload 2
aload 3
invokevirtual jdk.jfr.internal.instrument.JIInliner.isInstrumentationMethod:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 16
2: aload 0
aload 2
aload 3
invokevirtual jdk.jfr.internal.instrument.JIInliner.findTargetMethodNode:(Ljava/lang/String;Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/tree/MethodNode;
astore 7
start local 7 3: aload 7
ifnonnull 5
4: new java.lang.IllegalArgumentException
dup
ldc "Could not find the method to instrument in the target class"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: jdk.internal.org.objectweb.asm.MethodVisitor jdk.internal.org.objectweb.asm.tree.MethodNode
StackMap stack:
aload 7
getfield jdk.internal.org.objectweb.asm.tree.MethodNode.access:I
invokestatic java.lang.reflect.Modifier.isNative:(I)Z
ifeq 7
6: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Cannot instrument native methods: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.jfr.internal.instrument.JIInliner.targetClassNode:Ljdk/internal/org/objectweb/asm/tree/ClassNode;
getfield jdk.internal.org.objectweb.asm.tree.ClassNode.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
getfield jdk.internal.org.objectweb.asm.tree.MethodNode.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
getfield jdk.internal.org.objectweb.asm.tree.MethodNode.desc:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_BYTECODE:Ljdk/jfr/internal/LogTag;
getstatic jdk.jfr.internal.LogLevel.DEBUG:Ljdk/jfr/internal/LogLevel;
new java.lang.StringBuilder
dup
ldc "Inliner processing method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
8: new jdk.jfr.internal.instrument.JIMethodCallInliner
dup
iload 1
9: aload 3
10: aload 6
11: aload 7
12: aload 0
getfield jdk.jfr.internal.instrument.JIInliner.targetClassName:Ljava/lang/String;
13: aload 0
getfield jdk.jfr.internal.instrument.JIInliner.instrumentationClassName:Ljava/lang/String;
14: invokespecial jdk.jfr.internal.instrument.JIMethodCallInliner.<init>:(ILjava/lang/String;Ljdk/internal/org/objectweb/asm/MethodVisitor;Ljdk/internal/org/objectweb/asm/tree/MethodNode;Ljava/lang/String;Ljava/lang/String;)V
astore 8
start local 8 15: aload 8
areturn
end local 8 end local 7 16: StackMap locals:
StackMap stack:
aload 6
areturn
end local 6 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 this Ljdk/jfr/internal/instrument/JIInliner;
0 17 1 access I
0 17 2 name Ljava/lang/String;
0 17 3 desc Ljava/lang/String;
0 17 4 signature Ljava/lang/String;
0 17 5 exceptions [Ljava/lang/String;
1 17 6 mv Ljdk/internal/org/objectweb/asm/MethodVisitor;
3 16 7 methodToInline Ljdk/internal/org/objectweb/asm/tree/MethodNode;
15 16 8 mci Ljdk/jfr/internal/instrument/JIMethodCallInliner;
MethodParameters:
Name Flags
access
name
desc
signature
exceptions
private boolean isInstrumentationMethod(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.jfr.internal.instrument.JIInliner.instrumentationMethods:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: jdk.jfr.internal.instrument.JIInliner java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 3
start local 3 2: aload 3
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
aload 3
invokestatic jdk.internal.org.objectweb.asm.Type.getMethodDescriptor:(Ljava/lang/reflect/Method;)Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/jfr/internal/instrument/JIInliner;
0 6 1 name Ljava/lang/String;
0 6 2 desc Ljava/lang/String;
2 4 3 m Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
name
desc
private jdk.internal.org.objectweb.asm.tree.MethodNode findTargetMethodNode(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/tree/MethodNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.jfr.internal.instrument.JIInliner.targetClassNode:Ljdk/internal/org/objectweb/asm/tree/ClassNode;
getfield jdk.internal.org.objectweb.asm.tree.ClassNode.methods:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: jdk.jfr.internal.instrument.JIInliner java.lang.String java.lang.String top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.internal.org.objectweb.asm.tree.MethodNode
astore 3
start local 3 2: aload 3
getfield jdk.internal.org.objectweb.asm.tree.MethodNode.desc:Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
aload 3
getfield jdk.internal.org.objectweb.asm.tree.MethodNode.name:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "could not find MethodNode for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/jfr/internal/instrument/JIInliner;
0 8 1 name Ljava/lang/String;
0 8 2 desc Ljava/lang/String;
2 4 3 mn Ljdk/internal/org/objectweb/asm/tree/MethodNode;
MethodParameters:
Name Flags
name
desc
}
SourceFile: "JIInliner.java"
RuntimeVisibleAnnotations:
java.lang.Deprecated()