final class jdk.jfr.internal.ASMToolkit
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.jfr.internal.ASMToolkit
super_class: java.lang.Object
{
private static jdk.internal.org.objectweb.asm.Type TYPE_STRING;
descriptor: Ljdk/internal/org/objectweb/asm/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static jdk.internal.org.objectweb.asm.Type Type_THREAD;
descriptor: Ljdk/internal/org/objectweb/asm/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static jdk.internal.org.objectweb.asm.Type TYPE_CLASS;
descriptor: Ljdk/internal/org/objectweb/asm/Type;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljava/lang/String;
invokestatic jdk.internal.org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Ljdk/internal/org/objectweb/asm/Type;
putstatic jdk.jfr.internal.ASMToolkit.TYPE_STRING:Ljdk/internal/org/objectweb/asm/Type;
1: ldc Ljava/lang/Thread;
invokestatic jdk.internal.org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Ljdk/internal/org/objectweb/asm/Type;
putstatic jdk.jfr.internal.ASMToolkit.Type_THREAD:Ljdk/internal/org/objectweb/asm/Type;
2: ldc Ljava/lang/Class;
invokestatic jdk.internal.org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Ljdk/internal/org/objectweb/asm/Type;
putstatic jdk.jfr.internal.ASMToolkit.TYPE_CLASS:Ljdk/internal/org/objectweb/asm/Type;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
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 Ljdk/jfr/internal/ASMToolkit;
public static void invokeSpecial(jdk.internal.org.objectweb.asm.MethodVisitor, java.lang.String, jdk.internal.org.objectweb.asm.commons.Method);
descriptor: (Ljdk/internal/org/objectweb/asm/MethodVisitor;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/commons/Method;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
sipush 183
aload 1
aload 2
invokevirtual jdk.internal.org.objectweb.asm.commons.Method.getName:()Ljava/lang/String;
aload 2
invokevirtual jdk.internal.org.objectweb.asm.commons.Method.getDescriptor:()Ljava/lang/String;
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 methodVisitor Ljdk/internal/org/objectweb/asm/MethodVisitor;
0 2 1 className Ljava/lang/String;
0 2 2 m Ljdk/internal/org/objectweb/asm/commons/Method;
MethodParameters:
Name Flags
methodVisitor
className
m
public static void invokeStatic(jdk.internal.org.objectweb.asm.MethodVisitor, java.lang.String, jdk.internal.org.objectweb.asm.commons.Method);
descriptor: (Ljdk/internal/org/objectweb/asm/MethodVisitor;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/commons/Method;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
sipush 184
aload 1
aload 2
invokevirtual jdk.internal.org.objectweb.asm.commons.Method.getName:()Ljava/lang/String;
aload 2
invokevirtual jdk.internal.org.objectweb.asm.commons.Method.getDescriptor:()Ljava/lang/String;
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 methodVisitor Ljdk/internal/org/objectweb/asm/MethodVisitor;
0 2 1 className Ljava/lang/String;
0 2 2 m Ljdk/internal/org/objectweb/asm/commons/Method;
MethodParameters:
Name Flags
methodVisitor
className
m
public static void invokeVirtual(jdk.internal.org.objectweb.asm.MethodVisitor, java.lang.String, jdk.internal.org.objectweb.asm.commons.Method);
descriptor: (Ljdk/internal/org/objectweb/asm/MethodVisitor;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/commons/Method;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
sipush 182
aload 1
aload 2
invokevirtual jdk.internal.org.objectweb.asm.commons.Method.getName:()Ljava/lang/String;
aload 2
invokevirtual jdk.internal.org.objectweb.asm.commons.Method.getDescriptor:()Ljava/lang/String;
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 methodVisitor Ljdk/internal/org/objectweb/asm/MethodVisitor;
0 2 1 className Ljava/lang/String;
0 2 2 m Ljdk/internal/org/objectweb/asm/commons/Method;
MethodParameters:
Name Flags
methodVisitor
className
m
public static jdk.internal.org.objectweb.asm.Type toType(jdk.jfr.ValueDescriptor);
descriptor: (Ljdk/jfr/ValueDescriptor;)Ljdk/internal/org/objectweb/asm/Type;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 11
-1325958191: 2
-530663260: 3
104431: 4
3039496: 5
3052374: 6
3327612: 7
64711720: 8
97526364: 9
109413500: 10
1195259493: 11
1212802142: 12
default: 24
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
2: aload 2
ldc "double"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 24
StackMap locals:
StackMap stack:
3: aload 2
ldc "java.lang.Class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
goto 24
StackMap locals:
StackMap stack:
4: aload 2
ldc "int"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 24
StackMap locals:
StackMap stack:
5: aload 2
ldc "byte"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
goto 24
StackMap locals:
StackMap stack:
6: aload 2
ldc "char"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
goto 24
StackMap locals:
StackMap stack:
7: aload 2
ldc "long"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
goto 24
StackMap locals:
StackMap stack:
8: aload 2
ldc "boolean"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
goto 24
StackMap locals:
StackMap stack:
9: aload 2
ldc "float"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 18
goto 24
StackMap locals:
StackMap stack:
10: aload 2
ldc "short"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 24
StackMap locals:
StackMap stack:
11: aload 2
ldc "java.lang.String"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 24
StackMap locals:
StackMap stack:
12: aload 2
ldc "java.lang.Thread"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 22
goto 24
13: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.BYTE_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
14: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.SHORT_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
15: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.INT_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
16: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.LONG_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
17: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.DOUBLE_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
18: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.FLOAT_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
19: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.CHAR_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
20: StackMap locals:
StackMap stack:
getstatic jdk.internal.org.objectweb.asm.Type.BOOLEAN_TYPE:Ljdk/internal/org/objectweb/asm/Type;
areturn
21: StackMap locals:
StackMap stack:
getstatic jdk.jfr.internal.ASMToolkit.TYPE_STRING:Ljdk/internal/org/objectweb/asm/Type;
areturn
22: StackMap locals:
StackMap stack:
getstatic jdk.jfr.internal.ASMToolkit.Type_THREAD:Ljdk/internal/org/objectweb/asm/Type;
areturn
23: StackMap locals:
StackMap stack:
getstatic jdk.jfr.internal.ASMToolkit.TYPE_CLASS:Ljdk/internal/org/objectweb/asm/Type;
areturn
24: StackMap locals:
StackMap stack:
new java.lang.Error
dup
new java.lang.StringBuilder
dup
ldc "Not a valid type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()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.Error.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 v Ljdk/jfr/ValueDescriptor;
1 25 1 typeName Ljava/lang/String;
MethodParameters:
Name Flags
v
public static java.lang.String getDescriptor(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: ldc "int"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: ldc "I"
areturn
2: StackMap locals:
StackMap stack:
ldc "long"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: ldc "J"
areturn
4: StackMap locals:
StackMap stack:
ldc "boolean"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: ldc "Z"
areturn
6: StackMap locals:
StackMap stack:
ldc "float"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
7: ldc "F"
areturn
8: StackMap locals:
StackMap stack:
ldc "double"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
9: ldc "D"
areturn
10: StackMap locals:
StackMap stack:
ldc "short"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: ldc "S"
areturn
12: StackMap locals:
StackMap stack:
ldc "char"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
13: ldc "C"
areturn
14: StackMap locals:
StackMap stack:
ldc "byte"
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
15: ldc "B"
areturn
16: StackMap locals:
StackMap stack:
aload 0
invokestatic jdk.jfr.internal.ASMToolkit.getInternalName:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 17: aload 1
invokestatic jdk.internal.org.objectweb.asm.Type.getObjectType:(Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/Type;
invokevirtual jdk.internal.org.objectweb.asm.Type.getDescriptor:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 typeName Ljava/lang/String;
17 18 1 internal Ljava/lang/String;
MethodParameters:
Name Flags
typeName
public static java.lang.String getInternalName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "."
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 className Ljava/lang/String;
MethodParameters:
Name Flags
className
public static jdk.internal.org.objectweb.asm.commons.Method makeWriteMethod(java.util.List<jdk.jfr.internal.EventInstrumentation$FieldInfo>);
descriptor: (Ljava/util/List;)Ljdk/internal/org/objectweb/asm/commons/Method;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.jfr.internal.EventInstrumentation$FieldInfo
astore 2
start local 2 4: aload 2
getfield jdk.jfr.internal.EventInstrumentation$FieldInfo.fieldName:Ljava/lang/String;
ldc "eventThread"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
aload 2
getfield jdk.jfr.internal.EventInstrumentation$FieldInfo.fieldName:Ljava/lang/String;
ldc "stackTrace"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
5: aload 1
aload 2
getfield jdk.jfr.internal.EventInstrumentation$FieldInfo.fieldDescriptor:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aload 1
ldc ")V"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: new jdk.internal.org.objectweb.asm.commons.Method
dup
ldc "write"
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial jdk.internal.org.objectweb.asm.commons.Method.<init>:(Ljava/lang/String;Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 fields Ljava/util/List<Ljdk/jfr/internal/EventInstrumentation$FieldInfo;>;
1 9 1 sb Ljava/lang/StringBuilder;
4 6 2 v Ljdk/jfr/internal/EventInstrumentation$FieldInfo;
Signature: (Ljava/util/List<Ljdk/jfr/internal/EventInstrumentation$FieldInfo;>;)Ljdk/internal/org/objectweb/asm/commons/Method;
MethodParameters:
Name Flags
fields
public static void logASM(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_BYTECODE:Ljdk/jfr/internal/LogTag;
getstatic jdk.jfr.internal.LogLevel.INFO:Ljdk/jfr/internal/LogLevel;
new java.lang.StringBuilder
dup
ldc "Generated bytecode for class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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
1: getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_BYTECODE:Ljdk/jfr/internal/LogTag;
getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
invokestatic jdk.jfr.internal.Logger.shouldLog:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)Z
ifeq 8
2: new jdk.internal.org.objectweb.asm.ClassReader
dup
aload 1
invokespecial jdk.internal.org.objectweb.asm.ClassReader.<init>:([B)V
astore 2
start local 2 3: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 3
start local 3 4: new java.io.PrintWriter
dup
aload 3
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
astore 4
start local 4 5: aload 4
ldc "Bytecode:"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
6: aload 2
new jdk.internal.org.objectweb.asm.util.TraceClassVisitor
dup
aload 4
invokespecial jdk.internal.org.objectweb.asm.util.TraceClassVisitor.<init>:(Ljava/io/PrintWriter;)V
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.ClassReader.accept:(Ljdk/internal/org/objectweb/asm/ClassVisitor;I)V
7: getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_BYTECODE:Ljdk/jfr/internal/LogTag;
getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
aload 3
invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
end local 4 end local 3 end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 className Ljava/lang/String;
0 9 1 bytes [B
3 8 2 cr Ljdk/internal/org/objectweb/asm/ClassReader;
4 8 3 baos Ljava/io/ByteArrayOutputStream;
5 8 4 w Ljava/io/PrintWriter;
MethodParameters:
Name Flags
className
bytes
}
SourceFile: "ASMToolkit.java"
InnerClasses:
final FieldInfo = jdk.jfr.internal.EventInstrumentation$FieldInfo of jdk.jfr.internal.EventInstrumentation