class net.sf.cglib.core.DebuggingClassWriter$1 implements java.security.PrivilegedAction
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: net.sf.cglib.core.DebuggingClassWriter$1
super_class: java.lang.Object
{
final net.sf.cglib.core.DebuggingClassWriter this$0;
descriptor: Lnet/sf/cglib/core/DebuggingClassWriter;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(net.sf.cglib.core.DebuggingClassWriter);
descriptor: (Lnet/sf/cglib/core/DebuggingClassWriter;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // net.sf.cglib.core.DebuggingClassWriter$1 this
0: .line 74
aload 0 /* this */
aload 1
putfield net.sf.cglib.core.DebuggingClassWriter$1.this$0:Lnet/sf/cglib/core/DebuggingClassWriter;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // net.sf.cglib.core.DebuggingClassWriter$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/core/DebuggingClassWriter$1;
MethodParameters:
Name Flags
this$0 final
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=1
start local 0 // net.sf.cglib.core.DebuggingClassWriter$1 this
0: .line 78
aload 0 /* this */
getfield net.sf.cglib.core.DebuggingClassWriter$1.this$0:Lnet/sf/cglib/core/DebuggingClassWriter;
invokestatic net.sf.cglib.core.DebuggingClassWriter.access$0:(Lnet/sf/cglib/core/DebuggingClassWriter;)Lorg/objectweb/asm/ClassVisitor;
checkcast org.objectweb.asm.ClassWriter
invokevirtual org.objectweb.asm.ClassWriter.toByteArray:()[B
astore 1 /* b */
start local 1 // byte[] b
1: .line 79
getstatic net.sf.cglib.core.DebuggingClassWriter.debugLocation:Ljava/lang/String;
ifnull 28
2: .line 80
aload 0 /* this */
getfield net.sf.cglib.core.DebuggingClassWriter$1.this$0:Lnet/sf/cglib/core/DebuggingClassWriter;
getfield net.sf.cglib.core.DebuggingClassWriter.className:Ljava/lang/String;
bipush 46
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 2 /* dirs */
start local 2 // java.lang.String dirs
3: .line 82
new java.io.File
dup
new java.lang.StringBuilder
dup
getstatic net.sf.cglib.core.DebuggingClassWriter.debugLocation:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 2 /* dirs */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
invokevirtual java.io.File.mkdirs:()Z
pop
4: .line 84
new java.io.File
dup
new java.io.File
dup
getstatic net.sf.cglib.core.DebuggingClassWriter.debugLocation:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
new java.lang.StringBuilder
dup
aload 2 /* dirs */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3 /* file */
start local 3 // java.io.File file
5: .line 85
new java.io.BufferedOutputStream
dup
new java.io.FileOutputStream
dup
aload 3 /* file */
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 4 /* out */
start local 4 // java.io.OutputStream out
6: .line 87
aload 4 /* out */
aload 1 /* b */
invokevirtual java.io.OutputStream.write:([B)V
7: .line 88
goto 11
StackMap locals: net.sf.cglib.core.DebuggingClassWriter$1 byte[] java.lang.String java.io.File java.io.OutputStream
StackMap stack: java.lang.Throwable
8: astore 5
9: .line 89
aload 4 /* out */
invokevirtual java.io.OutputStream.close:()V
10: .line 90
aload 5
athrow
11: .line 89
StackMap locals:
StackMap stack:
aload 4 /* out */
invokevirtual java.io.OutputStream.close:()V
12: .line 92
getstatic net.sf.cglib.core.DebuggingClassWriter.traceCtor:Ljava/lang/reflect/Constructor;
ifnull 28
13: .line 93
new java.io.File
dup
new java.io.File
dup
getstatic net.sf.cglib.core.DebuggingClassWriter.debugLocation:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
new java.lang.StringBuilder
dup
aload 2 /* dirs */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".asm"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3 /* file */
14: .line 94
new java.io.BufferedOutputStream
dup
new java.io.FileOutputStream
dup
aload 3 /* file */
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 4 /* out */
15: .line 96
new org.objectweb.asm.ClassReader
dup
aload 1 /* b */
invokespecial org.objectweb.asm.ClassReader.<init>:([B)V
astore 5 /* cr */
start local 5 // org.objectweb.asm.ClassReader cr
16: .line 97
new java.io.PrintWriter
dup
new java.io.OutputStreamWriter
dup
aload 4 /* out */
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;)V
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 6 /* pw */
start local 6 // java.io.PrintWriter pw
17: .line 98
getstatic net.sf.cglib.core.DebuggingClassWriter.traceCtor:Ljava/lang/reflect/Constructor;
iconst_2
anewarray java.lang.Object
dup
iconst_1
aload 6 /* pw */
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.objectweb.asm.ClassVisitor
astore 7 /* tcv */
start local 7 // org.objectweb.asm.ClassVisitor tcv
18: .line 99
aload 5 /* cr */
aload 7 /* tcv */
iconst_0
invokevirtual org.objectweb.asm.ClassReader.accept:(Lorg/objectweb/asm/ClassVisitor;I)V
19: .line 100
aload 6 /* pw */
invokevirtual java.io.PrintWriter.flush:()V
end local 7 // org.objectweb.asm.ClassVisitor tcv
end local 6 // java.io.PrintWriter pw
end local 5 // org.objectweb.asm.ClassReader cr
20: .line 101
goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 8
22: .line 102
aload 4 /* out */
invokevirtual java.io.OutputStream.close:()V
23: .line 103
aload 8
athrow
24: .line 102
StackMap locals:
StackMap stack:
aload 4 /* out */
invokevirtual java.io.OutputStream.close:()V
end local 4 // java.io.OutputStream out
end local 3 // java.io.File file
25: .line 105
goto 28
StackMap locals: net.sf.cglib.core.DebuggingClassWriter$1 byte[] java.lang.String
StackMap stack: java.lang.Exception
26: astore 3 /* e */
start local 3 // java.lang.Exception e
27: .line 106
new net.sf.cglib.core.CodeGenerationException
dup
aload 3 /* e */
invokespecial net.sf.cglib.core.CodeGenerationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 // java.lang.Exception e
end local 2 // java.lang.String dirs
28: .line 109
StackMap locals:
StackMap stack:
aload 1 /* b */
areturn
end local 1 // byte[] b
end local 0 // net.sf.cglib.core.DebuggingClassWriter$1 this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lnet/sf/cglib/core/DebuggingClassWriter$1;
1 29 1 b [B
3 28 2 dirs Ljava/lang/String;
5 25 3 file Ljava/io/File;
6 25 4 out Ljava/io/OutputStream;
16 20 5 cr Lorg/objectweb/asm/ClassReader;
17 20 6 pw Ljava/io/PrintWriter;
18 20 7 tcv Lorg/objectweb/asm/ClassVisitor;
27 28 3 e Ljava/lang/Exception;
Exception table:
from to target type
6 8 8 any
15 21 21 any
3 25 26 Class java.lang.Exception
}
SourceFile: "DebuggingClassWriter.java"
EnclosingMethod: net.sf.cglib.core.DebuggingClassWriter.toByteArray:()[B
NestHost: net.sf.cglib.core.DebuggingClassWriter
InnerClasses:
net.sf.cglib.core.DebuggingClassWriter$1