public class com.sun.tools.javap.CodeWriter extends com.sun.tools.javap.BasicWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.javap.CodeWriter
super_class: com.sun.tools.javap.BasicWriter
{
com.sun.tools.classfile.Instruction$KindVisitor<java.lang.Void, java.lang.Integer> instructionPrinter;
descriptor: Lcom/sun/tools/classfile/Instruction$KindVisitor;
flags: (0x0000)
Signature: Lcom/sun/tools/classfile/Instruction$KindVisitor<Ljava/lang/Void;Ljava/lang/Integer;>;
private com.sun.tools.javap.AttributeWriter attrWriter;
descriptor: Lcom/sun/tools/javap/AttributeWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.ClassWriter classWriter;
descriptor: Lcom/sun/tools/javap/ClassWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.ConstantWriter constantWriter;
descriptor: Lcom/sun/tools/javap/ConstantWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.LocalVariableTableWriter localVariableTableWriter;
descriptor: Lcom/sun/tools/javap/LocalVariableTableWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.LocalVariableTypeTableWriter localVariableTypeTableWriter;
descriptor: Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.TypeAnnotationWriter typeAnnotationWriter;
descriptor: Lcom/sun/tools/javap/TypeAnnotationWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.SourceWriter sourceWriter;
descriptor: Lcom/sun/tools/javap/SourceWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.StackMapWriter stackMapWriter;
descriptor: Lcom/sun/tools/javap/StackMapWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.TryBlockWriter tryBlockWriter;
descriptor: Lcom/sun/tools/javap/TryBlockWriter;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.javap.Options options;
descriptor: Lcom/sun/tools/javap/Options;
flags: (0x0002) ACC_PRIVATE
public static com.sun.tools.javap.CodeWriter instance(com.sun.tools.javap.Context);
descriptor: (Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/CodeWriter;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ldc Lcom/sun/tools/javap/CodeWriter;
invokevirtual com.sun.tools.javap.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.sun.tools.javap.CodeWriter
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new com.sun.tools.javap.CodeWriter
dup
aload 0
invokespecial com.sun.tools.javap.CodeWriter.<init>:(Lcom/sun/tools/javap/Context;)V
astore 1
3: StackMap locals: com.sun.tools.javap.CodeWriter
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lcom/sun/tools/javap/Context;
1 4 1 instance Lcom/sun/tools/javap/CodeWriter;
MethodParameters:
Name Flags
context
protected void <init>(com.sun.tools.javap.Context);
descriptor: (Lcom/sun/tools/javap/Context;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.sun.tools.javap.BasicWriter.<init>:(Lcom/sun/tools/javap/Context;)V
1: aload 0
2: new com.sun.tools.javap.CodeWriter$1
dup
aload 0
invokespecial com.sun.tools.javap.CodeWriter$1.<init>:(Lcom/sun/tools/javap/CodeWriter;)V
putfield com.sun.tools.javap.CodeWriter.instructionPrinter:Lcom/sun/tools/classfile/Instruction$KindVisitor;
3: aload 1
ldc Lcom/sun/tools/javap/CodeWriter;
aload 0
invokevirtual com.sun.tools.javap.Context.put:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
aload 1
invokestatic com.sun.tools.javap.AttributeWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/AttributeWriter;
putfield com.sun.tools.javap.CodeWriter.attrWriter:Lcom/sun/tools/javap/AttributeWriter;
5: aload 0
aload 1
invokestatic com.sun.tools.javap.ClassWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/ClassWriter;
putfield com.sun.tools.javap.CodeWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
6: aload 0
aload 1
invokestatic com.sun.tools.javap.ConstantWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/ConstantWriter;
putfield com.sun.tools.javap.CodeWriter.constantWriter:Lcom/sun/tools/javap/ConstantWriter;
7: aload 0
aload 1
invokestatic com.sun.tools.javap.SourceWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/SourceWriter;
putfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
8: aload 0
aload 1
invokestatic com.sun.tools.javap.TryBlockWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/TryBlockWriter;
putfield com.sun.tools.javap.CodeWriter.tryBlockWriter:Lcom/sun/tools/javap/TryBlockWriter;
9: aload 0
aload 1
invokestatic com.sun.tools.javap.StackMapWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/StackMapWriter;
putfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
10: aload 0
aload 1
invokestatic com.sun.tools.javap.LocalVariableTableWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/LocalVariableTableWriter;
putfield com.sun.tools.javap.CodeWriter.localVariableTableWriter:Lcom/sun/tools/javap/LocalVariableTableWriter;
11: aload 0
aload 1
invokestatic com.sun.tools.javap.LocalVariableTypeTableWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
putfield com.sun.tools.javap.CodeWriter.localVariableTypeTableWriter:Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
12: aload 0
aload 1
invokestatic com.sun.tools.javap.TypeAnnotationWriter.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/TypeAnnotationWriter;
putfield com.sun.tools.javap.CodeWriter.typeAnnotationWriter:Lcom/sun/tools/javap/TypeAnnotationWriter;
13: aload 0
aload 1
invokestatic com.sun.tools.javap.Options.instance:(Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/Options;
putfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/tools/javap/CodeWriter;
0 15 1 context Lcom/sun/tools/javap/Context;
MethodParameters:
Name Flags
context
void write(com.sun.tools.classfile.Code_attribute, com.sun.tools.classfile.ConstantPool);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;Lcom/sun/tools/classfile/ConstantPool;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc "Code:"
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
1: aload 0
iconst_1
invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
2: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javap.CodeWriter.writeVerboseHeader:(Lcom/sun/tools/classfile/Code_attribute;Lcom/sun/tools/classfile/ConstantPool;)V
3: aload 0
aload 1
invokevirtual com.sun.tools.javap.CodeWriter.writeInstrs:(Lcom/sun/tools/classfile/Code_attribute;)V
4: aload 0
aload 1
invokevirtual com.sun.tools.javap.CodeWriter.writeExceptionTable:(Lcom/sun/tools/classfile/Code_attribute;)V
5: aload 0
getfield com.sun.tools.javap.CodeWriter.attrWriter:Lcom/sun/tools/javap/AttributeWriter;
aload 1
aload 1
getfield com.sun.tools.classfile.Code_attribute.attributes:Lcom/sun/tools/classfile/Attributes;
aload 2
invokevirtual com.sun.tools.javap.AttributeWriter.write:(Ljava/lang/Object;Lcom/sun/tools/classfile/Attributes;Lcom/sun/tools/classfile/ConstantPool;)V
6: aload 0
iconst_m1
invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javap/CodeWriter;
0 8 1 attr Lcom/sun/tools/classfile/Code_attribute;
0 8 2 constant_pool Lcom/sun/tools/classfile/ConstantPool;
MethodParameters:
Name Flags
attr
constant_pool
public void (com.sun.tools.classfile.Code_attribute, com.sun.tools.classfile.ConstantPool);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;Lcom/sun/tools/classfile/ConstantPool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javap.CodeWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
invokevirtual com.sun.tools.javap.ClassWriter.getMethod:()Lcom/sun/tools/classfile/Method;
astore 3
start local 3 1: aload 3
getfield com.sun.tools.classfile.Method.descriptor:Lcom/sun/tools/classfile/Descriptor;
aload 2
invokevirtual com.sun.tools.classfile.Descriptor.getParameterCount:(Lcom/sun/tools/classfile/ConstantPool;)I
istore 5
start local 5 2: aload 3
getfield com.sun.tools.classfile.Method.access_flags:Lcom/sun/tools/classfile/AccessFlags;
bipush 8
invokevirtual com.sun.tools.classfile.AccessFlags.is:(I)Z
ifne 4
3: iinc 5 1
4: StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute com.sun.tools.classfile.ConstantPool com.sun.tools.classfile.Method top int
StackMap stack:
iload 5
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
astore 4
end local 5 start local 4 5: goto 11
end local 4 StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute com.sun.tools.classfile.ConstantPool com.sun.tools.classfile.Method
StackMap stack: com.sun.tools.classfile.ConstantPoolException
6: astore 5
start local 5 7: aload 0
aload 5
invokevirtual com.sun.tools.javap.CodeWriter.report:(Lcom/sun/tools/classfile/ConstantPoolException;)Ljava/lang/String;
astore 4
end local 5 start local 4 8: goto 11
end local 4 9: StackMap locals:
StackMap stack: com.sun.tools.classfile.DescriptorException
astore 5
start local 5 10: aload 0
aload 5
invokevirtual com.sun.tools.javap.CodeWriter.report:(Lcom/sun/tools/classfile/DescriptorException;)Ljava/lang/String;
astore 4
end local 5 start local 4 11: StackMap locals: java.lang.String
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "stack="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.sun.tools.classfile.Code_attribute.max_stack:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
12: ldc ", locals="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.sun.tools.classfile.Code_attribute.max_locals:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
13: ldc ", args_size="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
15: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/tools/javap/CodeWriter;
0 16 1 attr Lcom/sun/tools/classfile/Code_attribute;
0 16 2 constant_pool Lcom/sun/tools/classfile/ConstantPool;
1 16 3 method Lcom/sun/tools/classfile/Method;
5 6 4 argCount Ljava/lang/String;
8 9 4 argCount Ljava/lang/String;
11 16 4 argCount Ljava/lang/String;
2 5 5 n I
7 8 5 e Lcom/sun/tools/classfile/ConstantPoolException;
10 11 5 e Lcom/sun/tools/classfile/DescriptorException;
Exception table:
from to target type
1 5 6 Class com.sun.tools.classfile.ConstantPoolException
1 5 9 Class com.sun.tools.classfile.DescriptorException
MethodParameters:
Name Flags
attr
constant_pool
public void writeInstrs(com.sun.tools.classfile.Code_attribute);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.tools.javap.CodeWriter.getDetailWriters:(Lcom/sun/tools/classfile/Code_attribute;)Ljava/util/List;
astore 2
start local 2 1: aload 1
invokevirtual com.sun.tools.classfile.Code_attribute.getInstructions:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.classfile.Instruction
astore 3
start local 3 3: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 6
StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List com.sun.tools.classfile.Instruction java.util.Iterator top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javap.InstructionDetailWriter
astore 5
start local 5 5: aload 5
aload 3
invokevirtual com.sun.tools.javap.InstructionDetailWriter.writeDetails:(Lcom/sun/tools/classfile/Instruction;)V
end local 5 6: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
aload 3
invokevirtual com.sun.tools.javap.CodeWriter.writeInstr:(Lcom/sun/tools/classfile/Instruction;)V
8: goto 12
StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List com.sun.tools.classfile.Instruction java.util.Iterator
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
9: pop
10: aload 0
aload 0
new java.lang.StringBuilder
dup
ldc "error at or after byte "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.tools.javap.CodeWriter.report:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
11: goto 13
end local 3 12: StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
13: StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List
StackMap stack:
aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 16
StackMap locals: com.sun.tools.javap.CodeWriter com.sun.tools.classfile.Code_attribute java.util.List top java.util.Iterator
StackMap stack:
14: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javap.InstructionDetailWriter
astore 3
start local 3 15: aload 3
invokevirtual com.sun.tools.javap.InstructionDetailWriter.flush:()V
end local 3 16: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/tools/javap/CodeWriter;
0 18 1 attr Lcom/sun/tools/classfile/Code_attribute;
1 18 2 detailWriters Ljava/util/List<Lcom/sun/tools/javap/InstructionDetailWriter;>;
3 12 3 instr Lcom/sun/tools/classfile/Instruction;
5 6 5 w Lcom/sun/tools/javap/InstructionDetailWriter;
15 16 3 w Lcom/sun/tools/javap/InstructionDetailWriter;
Exception table:
from to target type
3 8 9 Class java.lang.ArrayIndexOutOfBoundsException
MethodParameters:
Name Flags
attr
public void writeInstr(com.sun.tools.classfile.Instruction);
descriptor: (Lcom/sun/tools/classfile/Instruction;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
ldc "%4d: %-13s "
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 1
invokevirtual com.sun.tools.classfile.Instruction.getMnemonic:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
1: aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.indentWidth:I
istore 2
start local 2 2: bipush 6
iload 2
iadd
iconst_1
isub
iload 2
idiv
istore 3
start local 3 3: aload 1
aload 0
getfield com.sun.tools.javap.CodeWriter.instructionPrinter:Lcom/sun/tools/classfile/Instruction$KindVisitor;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.sun.tools.classfile.Instruction.accept:(Lcom/sun/tools/classfile/Instruction$KindVisitor;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
invokevirtual com.sun.tools.javap.CodeWriter.println:()V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javap/CodeWriter;
0 6 1 instr Lcom/sun/tools/classfile/Instruction;
2 6 2 indentWidth I
3 6 3 indent I
MethodParameters:
Name Flags
instr
public void writeExceptionTable(com.sun.tools.classfile.Code_attribute);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.classfile.Code_attribute.exception_table_length:I
ifle 20
1: aload 0
ldc "Exception table:"
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
2: aload 0
iconst_1
invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
3: aload 0
ldc " from to target type"
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
4: iconst_0
istore 2
start local 2 5: goto 18
6: StackMap locals: int
StackMap stack:
aload 1
getfield com.sun.tools.classfile.Code_attribute.exception_table:[Lcom/sun/tools/classfile/Code_attribute$Exception_data;
iload 2
aaload
astore 3
start local 3 7: aload 0
ldc " %5d %5d %5d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
8: aload 3
getfield com.sun.tools.classfile.Code_attribute$Exception_data.start_pc:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 3
getfield com.sun.tools.classfile.Code_attribute$Exception_data.end_pc:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 3
getfield com.sun.tools.classfile.Code_attribute$Exception_data.handler_pc:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
9: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
10: aload 0
ldc " "
invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
11: aload 3
getfield com.sun.tools.classfile.Code_attribute$Exception_data.catch_type:I
istore 4
start local 4 12: iload 4
ifne 15
13: aload 0
ldc "any"
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
14: goto 17
15: StackMap locals: com.sun.tools.classfile.Code_attribute$Exception_data int
StackMap stack:
aload 0
ldc "Class "
invokevirtual com.sun.tools.javap.CodeWriter.print:(Ljava/lang/String;)V
16: aload 0
aload 0
getfield com.sun.tools.javap.CodeWriter.constantWriter:Lcom/sun/tools/javap/ConstantWriter;
iload 4
invokevirtual com.sun.tools.javap.ConstantWriter.stringValue:(I)Ljava/lang/String;
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
end local 4 end local 3 17: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
18: iload 2
aload 1
getfield com.sun.tools.classfile.Code_attribute.exception_table:[Lcom/sun/tools/classfile/Code_attribute$Exception_data;
arraylength
if_icmplt 6
end local 2 19: aload 0
iconst_m1
invokevirtual com.sun.tools.javap.CodeWriter.indent:(I)V
20: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/sun/tools/javap/CodeWriter;
0 21 1 attr Lcom/sun/tools/classfile/Code_attribute;
5 19 2 i I
7 17 3 handler Lcom/sun/tools/classfile/Code_attribute$Exception_data;
12 17 4 catch_type I
MethodParameters:
Name Flags
attr
private void printConstant(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javap.CodeWriter.constantWriter:Lcom/sun/tools/javap/ConstantWriter;
iload 1
invokevirtual com.sun.tools.javap.ConstantWriter.write:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javap/CodeWriter;
0 2 1 index I
MethodParameters:
Name Flags
index
private java.util.List<com.sun.tools.javap.InstructionDetailWriter> getDetailWriters(com.sun.tools.classfile.Code_attribute);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.SOURCE:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
2: aload 0
getfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
aload 0
getfield com.sun.tools.javap.CodeWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
invokevirtual com.sun.tools.javap.ClassWriter.getClassFile:()Lcom/sun/tools/classfile/ClassFile;
aload 1
invokevirtual com.sun.tools.javap.SourceWriter.reset:(Lcom/sun/tools/classfile/ClassFile;Lcom/sun/tools/classfile/Code_attribute;)V
3: aload 0
getfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
invokevirtual com.sun.tools.javap.SourceWriter.hasSource:()Z
ifeq 5
4: aload 2
aload 0
getfield com.sun.tools.javap.CodeWriter.sourceWriter:Lcom/sun/tools/javap/SourceWriter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
goto 6
5: StackMap locals: java.util.List
StackMap stack:
aload 0
ldc "(Source code not available)"
invokevirtual com.sun.tools.javap.CodeWriter.println:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.LOCAL_VARS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 9
7: aload 0
getfield com.sun.tools.javap.CodeWriter.localVariableTableWriter:Lcom/sun/tools/javap/LocalVariableTableWriter;
aload 1
invokevirtual com.sun.tools.javap.LocalVariableTableWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
8: aload 2
aload 0
getfield com.sun.tools.javap.CodeWriter.localVariableTableWriter:Lcom/sun/tools/javap/LocalVariableTableWriter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.LOCAL_VAR_TYPES:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 12
10: aload 0
getfield com.sun.tools.javap.CodeWriter.localVariableTypeTableWriter:Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
aload 1
invokevirtual com.sun.tools.javap.LocalVariableTypeTableWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
11: aload 2
aload 0
getfield com.sun.tools.javap.CodeWriter.localVariableTypeTableWriter:Lcom/sun/tools/javap/LocalVariableTypeTableWriter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.STACKMAPS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 16
13: aload 0
getfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
aload 1
invokevirtual com.sun.tools.javap.StackMapWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
14: aload 0
getfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
invokevirtual com.sun.tools.javap.StackMapWriter.writeInitialDetails:()V
15: aload 2
aload 0
getfield com.sun.tools.javap.CodeWriter.stackMapWriter:Lcom/sun/tools/javap/StackMapWriter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.TRY_BLOCKS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 19
17: aload 0
getfield com.sun.tools.javap.CodeWriter.tryBlockWriter:Lcom/sun/tools/javap/TryBlockWriter;
aload 1
invokevirtual com.sun.tools.javap.TryBlockWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
18: aload 2
aload 0
getfield com.sun.tools.javap.CodeWriter.tryBlockWriter:Lcom/sun/tools/javap/TryBlockWriter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.CodeWriter.options:Lcom/sun/tools/javap/Options;
getfield com.sun.tools.javap.Options.details:Ljava/util/Set;
getstatic com.sun.tools.javap.InstructionDetailWriter$Kind.TYPE_ANNOS:Lcom/sun/tools/javap/InstructionDetailWriter$Kind;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 22
20: aload 0
getfield com.sun.tools.javap.CodeWriter.typeAnnotationWriter:Lcom/sun/tools/javap/TypeAnnotationWriter;
aload 1
invokevirtual com.sun.tools.javap.TypeAnnotationWriter.reset:(Lcom/sun/tools/classfile/Code_attribute;)V
21: aload 2
aload 0
getfield com.sun.tools.javap.CodeWriter.typeAnnotationWriter:Lcom/sun/tools/javap/TypeAnnotationWriter;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/tools/javap/CodeWriter;
0 23 1 attr Lcom/sun/tools/classfile/Code_attribute;
1 23 2 detailWriters Ljava/util/List<Lcom/sun/tools/javap/InstructionDetailWriter;>;
Signature: (Lcom/sun/tools/classfile/Code_attribute;)Ljava/util/List<Lcom/sun/tools/javap/InstructionDetailWriter;>;
MethodParameters:
Name Flags
attr
}
SourceFile: "CodeWriter.java"
NestMembers:
com.sun.tools.javap.CodeWriter$1
InnerClasses:
public Exception_data = com.sun.tools.classfile.Code_attribute$Exception_data of com.sun.tools.classfile.Code_attribute
public abstract KindVisitor = com.sun.tools.classfile.Instruction$KindVisitor of com.sun.tools.classfile.Instruction
com.sun.tools.javap.CodeWriter$1
public final Kind = com.sun.tools.javap.InstructionDetailWriter$Kind of com.sun.tools.javap.InstructionDetailWriter