final class jdk.jfr.internal.instrument.ConstructorTracerWriter 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.ConstructorTracerWriter
super_class: jdk.internal.org.objectweb.asm.ClassVisitor
{
private jdk.jfr.internal.instrument.ConstructorWriter useInputParameter;
descriptor: Ljdk/jfr/internal/instrument/ConstructorWriter;
flags: (0x0002) ACC_PRIVATE
private jdk.jfr.internal.instrument.ConstructorWriter noUseInputParameter;
descriptor: Ljdk/jfr/internal/instrument/ConstructorWriter;
flags: (0x0002) ACC_PRIVATE
static byte[] generateBytes(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;[B)[B
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: new java.io.ByteArrayInputStream
dup
aload 1
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 2
start local 2 1: new jdk.internal.org.objectweb.asm.ClassReader
dup
aload 2
invokespecial jdk.internal.org.objectweb.asm.ClassReader.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 2: new jdk.internal.org.objectweb.asm.ClassWriter
dup
iconst_1
invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(I)V
astore 4
start local 4 3: new jdk.jfr.internal.instrument.ConstructorTracerWriter
dup
aload 4
aload 0
invokespecial jdk.jfr.internal.instrument.ConstructorTracerWriter.<init>:(Ljdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/Class;)V
astore 5
start local 5 4: aload 3
aload 5
iconst_0
invokevirtual jdk.internal.org.objectweb.asm.ClassReader.accept:(Ljdk/internal/org/objectweb/asm/ClassVisitor;I)V
5: aload 4
invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
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 6 0 clz Ljava/lang/Class<*>;
0 6 1 oldBytes [B
1 6 2 in Ljava/io/InputStream;
2 6 3 cr Ljdk/internal/org/objectweb/asm/ClassReader;
3 6 4 cw Ljdk/internal/org/objectweb/asm/ClassWriter;
4 6 5 ctw Ljdk/jfr/internal/instrument/ConstructorTracerWriter;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/Class<*>;[B)[B
MethodParameters:
Name Flags
clz
oldBytes
private void <init>(jdk.internal.org.objectweb.asm.ClassVisitor, java.lang.Class<?>);
descriptor: (Ljdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc 327680
aload 1
invokespecial jdk.internal.org.objectweb.asm.ClassVisitor.<init>:(ILjdk/internal/org/objectweb/asm/ClassVisitor;)V
1: aload 0
new jdk.jfr.internal.instrument.ConstructorWriter
dup
aload 2
iconst_1
invokespecial jdk.jfr.internal.instrument.ConstructorWriter.<init>:(Ljava/lang/Class;Z)V
putfield jdk.jfr.internal.instrument.ConstructorTracerWriter.useInputParameter:Ljdk/jfr/internal/instrument/ConstructorWriter;
2: aload 0
new jdk.jfr.internal.instrument.ConstructorWriter
dup
aload 2
iconst_0
invokespecial jdk.jfr.internal.instrument.ConstructorWriter.<init>:(Ljava/lang/Class;Z)V
putfield jdk.jfr.internal.instrument.ConstructorTracerWriter.noUseInputParameter:Ljdk/jfr/internal/instrument/ConstructorWriter;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/jfr/internal/instrument/ConstructorTracerWriter;
0 4 1 cv Ljdk/internal/org/objectweb/asm/ClassVisitor;
0 4 2 classToChange Ljava/lang/Class<*>;
Signature: (Ljdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
cv
classToChange
private boolean isConstructor(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "<init>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jfr/internal/instrument/ConstructorTracerWriter;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private boolean takesStringParameter(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.internal.org.objectweb.asm.Type.getArgumentTypes:(Ljava/lang/String;)[Ljdk/internal/org/objectweb/asm/Type;
astore 2
start local 2 1: aload 2
arraylength
ifle 3
aload 2
iconst_0
aaload
invokevirtual jdk.internal.org.objectweb.asm.Type.getClassName:()Ljava/lang/String;
ldc Ljava/lang/String;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: jdk.internal.org.objectweb.asm.Type[]
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/jfr/internal/instrument/ConstructorTracerWriter;
0 4 1 desc Ljava/lang/String;
1 4 2 types [Ljdk/internal/org/objectweb/asm/Type;
MethodParameters:
Name Flags
desc
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=6, locals=7, 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
invokevirtual jdk.jfr.internal.instrument.ConstructorTracerWriter.isConstructor:(Ljava/lang/String;)Z
ifeq 7
2: aload 0
aload 3
invokevirtual jdk.jfr.internal.instrument.ConstructorTracerWriter.takesStringParameter:(Ljava/lang/String;)Z
ifeq 5
3: aload 0
getfield jdk.jfr.internal.instrument.ConstructorTracerWriter.useInputParameter:Ljdk/jfr/internal/instrument/ConstructorWriter;
aload 6
invokevirtual jdk.jfr.internal.instrument.ConstructorWriter.setMethodVisitor:(Ljdk/internal/org/objectweb/asm/MethodVisitor;)V
4: aload 0
getfield jdk.jfr.internal.instrument.ConstructorTracerWriter.useInputParameter:Ljdk/jfr/internal/instrument/ConstructorWriter;
areturn
5: StackMap locals: jdk.internal.org.objectweb.asm.MethodVisitor
StackMap stack:
aload 0
getfield jdk.jfr.internal.instrument.ConstructorTracerWriter.noUseInputParameter:Ljdk/jfr/internal/instrument/ConstructorWriter;
aload 6
invokevirtual jdk.jfr.internal.instrument.ConstructorWriter.setMethodVisitor:(Ljdk/internal/org/objectweb/asm/MethodVisitor;)V
6: aload 0
getfield jdk.jfr.internal.instrument.ConstructorTracerWriter.noUseInputParameter:Ljdk/jfr/internal/instrument/ConstructorWriter;
areturn
7: 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 8 0 this Ljdk/jfr/internal/instrument/ConstructorTracerWriter;
0 8 1 access I
0 8 2 name Ljava/lang/String;
0 8 3 desc Ljava/lang/String;
0 8 4 signature Ljava/lang/String;
0 8 5 exceptions [Ljava/lang/String;
1 8 6 mv Ljdk/internal/org/objectweb/asm/MethodVisitor;
MethodParameters:
Name Flags
access
name
desc
signature
exceptions
}
SourceFile: "ConstructorTracerWriter.java"