public class com.sun.tools.javap.StackMapWriter extends com.sun.tools.javap.InstructionDetailWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.javap.StackMapWriter
super_class: com.sun.tools.javap.InstructionDetailWriter
{
private java.util.Map<java.lang.Integer, com.sun.tools.javap.StackMapWriter$StackMap> map;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Integer;Lcom/sun/tools/javap/StackMapWriter$StackMap;>;
private com.sun.tools.javap.ClassWriter classWriter;
descriptor: Lcom/sun/tools/javap/ClassWriter;
flags: (0x0002) ACC_PRIVATE
private final com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[] empty;
descriptor: [Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static com.sun.tools.javap.StackMapWriter instance(com.sun.tools.javap.Context);
descriptor: (Lcom/sun/tools/javap/Context;)Lcom/sun/tools/javap/StackMapWriter;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ldc Lcom/sun/tools/javap/StackMapWriter;
invokevirtual com.sun.tools.javap.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.sun.tools.javap.StackMapWriter
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new com.sun.tools.javap.StackMapWriter
dup
aload 0
invokespecial com.sun.tools.javap.StackMapWriter.<init>:(Lcom/sun/tools/javap/Context;)V
astore 1
3: StackMap locals: com.sun.tools.javap.StackMapWriter
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/StackMapWriter;
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=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.sun.tools.javap.InstructionDetailWriter.<init>:(Lcom/sun/tools/javap/Context;)V
1: aload 0
iconst_0
anewarray com.sun.tools.classfile.StackMapTable_attribute$verification_type_info
putfield com.sun.tools.javap.StackMapWriter.empty:[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
2: aload 1
ldc Lcom/sun/tools/javap/StackMapWriter;
aload 0
invokevirtual com.sun.tools.javap.Context.put:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: 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.StackMapWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javap/StackMapWriter;
0 5 1 context Lcom/sun/tools/javap/Context;
MethodParameters:
Name Flags
context
public void reset(com.sun.tools.classfile.Code_attribute);
descriptor: (Lcom/sun/tools/classfile/Code_attribute;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.classfile.Code_attribute.attributes:Lcom/sun/tools/classfile/Attributes;
ldc "StackMapTable"
invokevirtual com.sun.tools.classfile.Attributes.get:(Ljava/lang/String;)Lcom/sun/tools/classfile/Attribute;
checkcast com.sun.tools.classfile.StackMapTable_attribute
invokevirtual com.sun.tools.javap.StackMapWriter.setStackMap:(Lcom/sun/tools/classfile/StackMapTable_attribute;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javap/StackMapWriter;
0 2 1 attr Lcom/sun/tools/classfile/Code_attribute;
MethodParameters:
Name Flags
attr
void setStackMap(com.sun.tools.classfile.StackMapTable_attribute);
descriptor: (Lcom/sun/tools/classfile/StackMapTable_attribute;)V
flags: (0x0000)
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: aload 0
aconst_null
putfield com.sun.tools.javap.StackMapWriter.map:Ljava/util/Map;
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.StackMapWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
invokevirtual com.sun.tools.javap.ClassWriter.getMethod:()Lcom/sun/tools/classfile/Method;
astore 2
start local 2 4: aload 2
getfield com.sun.tools.classfile.Method.descriptor:Lcom/sun/tools/classfile/Descriptor;
astore 3
start local 3 5: aload 0
getfield com.sun.tools.javap.StackMapWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
invokevirtual com.sun.tools.javap.ClassWriter.getClassFile:()Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.constant_pool:Lcom/sun/tools/classfile/ConstantPool;
astore 5
start local 5 6: aload 3
aload 5
invokevirtual com.sun.tools.classfile.Descriptor.getParameterTypes:(Lcom/sun/tools/classfile/ConstantPool;)Ljava/lang/String;
astore 6
start local 6 7: aload 6
iconst_1
aload 6
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc "[, ]+"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
end local 6 end local 5 start local 4 8: goto 11
end local 4 StackMap locals: com.sun.tools.javap.StackMapWriter com.sun.tools.classfile.StackMapTable_attribute com.sun.tools.classfile.Method com.sun.tools.classfile.Descriptor
StackMap stack: java.lang.Exception
9: pop
10: return
start local 4 11: StackMap locals: java.lang.String[]
StackMap stack:
aload 2
getfield com.sun.tools.classfile.Method.access_flags:Lcom/sun/tools/classfile/AccessFlags;
bipush 8
invokevirtual com.sun.tools.classfile.AccessFlags.is:(I)Z
istore 5
start local 5 12: iload 5
ifeq 13
iconst_0
goto 14
StackMap locals: int
StackMap stack:
13: iconst_1
StackMap locals:
StackMap stack: int
14: aload 4
arraylength
iadd
anewarray com.sun.tools.classfile.StackMapTable_attribute$verification_type_info
astore 6
start local 6 15: iload 5
ifne 17
16: aload 6
iconst_0
new com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo
dup
ldc "this"
invokespecial com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo.<init>:(Ljava/lang/String;)V
aastore
17: StackMap locals: com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[]
StackMap stack:
iconst_0
istore 7
start local 7 18: goto 25
19: StackMap locals: int
StackMap stack:
aload 6
iload 5
ifeq 20
iconst_0
goto 21
StackMap locals:
StackMap stack: com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[]
20: iconst_1
StackMap locals: com.sun.tools.javap.StackMapWriter com.sun.tools.classfile.StackMapTable_attribute com.sun.tools.classfile.Method com.sun.tools.classfile.Descriptor java.lang.String[] int com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[] int
StackMap stack: com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[] int
21: iload 7
iadd
22: new com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo
dup
aload 4
iload 7
aaload
ldc "."
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invokespecial com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo.<init>:(Ljava/lang/String;)V
23: aastore
24: iinc 7 1
StackMap locals:
StackMap stack:
25: iload 7
aload 4
arraylength
if_icmplt 19
end local 7 26: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.tools.javap.StackMapWriter.map:Ljava/util/Map;
27: new com.sun.tools.javap.StackMapWriter$StackMapBuilder
dup
aload 0
invokespecial com.sun.tools.javap.StackMapWriter$StackMapBuilder.<init>:(Lcom/sun/tools/javap/StackMapWriter;)V
astore 7
start local 7 28: iconst_m1
istore 8
start local 8 29: aload 0
getfield com.sun.tools.javap.StackMapWriter.map:Ljava/util/Map;
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new com.sun.tools.javap.StackMapWriter$StackMap
dup
aload 6
aload 0
getfield com.sun.tools.javap.StackMapWriter.empty:[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
invokespecial com.sun.tools.javap.StackMapWriter$StackMap.<init>:([Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
30: iconst_0
istore 9
start local 9 31: goto 34
32: StackMap locals: com.sun.tools.javap.StackMapWriter com.sun.tools.classfile.StackMapTable_attribute com.sun.tools.classfile.Method com.sun.tools.classfile.Descriptor java.lang.String[] int com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[] com.sun.tools.javap.StackMapWriter$StackMapBuilder int int
StackMap stack:
aload 1
getfield com.sun.tools.classfile.StackMapTable_attribute.entries:[Lcom/sun/tools/classfile/StackMapTable_attribute$stack_map_frame;
iload 9
aaload
aload 7
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.sun.tools.classfile.StackMapTable_attribute$stack_map_frame.accept:(Lcom/sun/tools/classfile/StackMapTable_attribute$stack_map_frame$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
33: iinc 9 1
StackMap locals:
StackMap stack:
34: iload 9
aload 1
getfield com.sun.tools.classfile.StackMapTable_attribute.entries:[Lcom/sun/tools/classfile/StackMapTable_attribute$stack_map_frame;
arraylength
if_icmplt 32
end local 9 35: return
end local 8 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 36 0 this Lcom/sun/tools/javap/StackMapWriter;
0 36 1 attr Lcom/sun/tools/classfile/StackMapTable_attribute;
4 36 2 m Lcom/sun/tools/classfile/Method;
5 36 3 d Lcom/sun/tools/classfile/Descriptor;
8 9 4 args [Ljava/lang/String;
11 36 4 args [Ljava/lang/String;
6 8 5 cp Lcom/sun/tools/classfile/ConstantPool;
7 8 6 argString Ljava/lang/String;
12 36 5 isStatic Z
15 36 6 initialLocals [Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
18 26 7 i I
28 36 7 builder Lcom/sun/tools/javap/StackMapWriter$StackMapBuilder;
29 36 8 pc I
31 35 9 i I
Exception table:
from to target type
5 8 9 Class com.sun.tools.classfile.ConstantPoolException
5 8 9 Class com.sun.tools.classfile.Descriptor$InvalidDescriptor
MethodParameters:
Name Flags
attr
public void writeInitialDetails();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_m1
invokevirtual com.sun.tools.javap.StackMapWriter.writeDetails:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javap/StackMapWriter;
public void writeDetails(com.sun.tools.classfile.Instruction);
descriptor: (Lcom/sun/tools/classfile/Instruction;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.tools.classfile.Instruction.getPC:()I
invokevirtual com.sun.tools.javap.StackMapWriter.writeDetails:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javap/StackMapWriter;
0 2 1 instr Lcom/sun/tools/classfile/Instruction;
MethodParameters:
Name Flags
instr
private void writeDetails(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javap.StackMapWriter.map:Ljava/util/Map;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.StackMapWriter.map:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.tools.javap.StackMapWriter$StackMap
astore 2
start local 2 3: aload 2
ifnull 6
4: aload 0
ldc "StackMap locals: "
aload 2
getfield com.sun.tools.javap.StackMapWriter$StackMap.locals:[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;)V
5: aload 0
ldc "StackMap stack: "
aload 2
getfield com.sun.tools.javap.StackMapWriter$StackMap.stack:[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;)V
6: StackMap locals: com.sun.tools.javap.StackMapWriter$StackMap
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javap/StackMapWriter;
0 7 1 pc I
3 7 2 m Lcom/sun/tools/javap/StackMapWriter$StackMap;
MethodParameters:
Name Flags
pc
void print(java.lang.String, com.sun.tools.classfile.StackMapTable_attribute$verification_type_info[]);
descriptor: (Ljava/lang/String;[Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
1: iconst_0
istore 3
start local 3 2: goto 6
3: StackMap locals: int
StackMap stack:
aload 0
ldc " "
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
4: aload 0
aload 2
iload 3
aaload
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;)V
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 7: aload 0
invokevirtual com.sun.tools.javap.StackMapWriter.println:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/javap/StackMapWriter;
0 9 1 label Ljava/lang/String;
0 9 2 entries [Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
2 7 3 i I
MethodParameters:
Name Flags
label
entries
void print(com.sun.tools.classfile.StackMapTable_attribute$verification_type_info);
descriptor: (Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: aload 0
ldc "ERROR"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
2: return
3: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.classfile.StackMapTable_attribute$verification_type_info.tag:I
tableswitch { // -1 - 8
-1: 4
0: 6
1: 8
2: 10
3: 14
4: 12
5: 16
6: 18
7: 20
8: 27
default: 28
}
4: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo
getfield com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo.text:Ljava/lang/String;
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
5: goto 28
6: StackMap locals:
StackMap stack:
aload 0
ldc "top"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
7: goto 28
8: StackMap locals:
StackMap stack:
aload 0
ldc "int"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
9: goto 28
10: StackMap locals:
StackMap stack:
aload 0
ldc "float"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
11: goto 28
12: StackMap locals:
StackMap stack:
aload 0
ldc "long"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
13: goto 28
14: StackMap locals:
StackMap stack:
aload 0
ldc "double"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
15: goto 28
16: StackMap locals:
StackMap stack:
aload 0
ldc "null"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
17: goto 28
18: StackMap locals:
StackMap stack:
aload 0
ldc "uninit_this"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
19: goto 28
20: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javap.StackMapWriter.classWriter:Lcom/sun/tools/javap/ClassWriter;
invokevirtual com.sun.tools.javap.ClassWriter.getClassFile:()Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.constant_pool:Lcom/sun/tools/classfile/ConstantPool;
astore 2
start local 2 21: aload 2
aload 1
checkcast com.sun.tools.classfile.StackMapTable_attribute$Object_variable_info
getfield com.sun.tools.classfile.StackMapTable_attribute$Object_variable_info.cpool_index:I
invokevirtual com.sun.tools.classfile.ConstantPool.getClassInfo:(I)Lcom/sun/tools/classfile/ConstantPool$CONSTANT_Class_info;
astore 3
start local 3 22: aload 0
aload 2
aload 3
getfield com.sun.tools.classfile.ConstantPool$CONSTANT_Class_info.name_index:I
invokevirtual com.sun.tools.classfile.ConstantPool.getUTF8Value:(I)Ljava/lang/String;
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
end local 3 end local 2 23: goto 28
StackMap locals:
StackMap stack: com.sun.tools.classfile.ConstantPoolException
24: pop
25: aload 0
ldc "??"
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/String;)V
26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast com.sun.tools.classfile.StackMapTable_attribute$Uninitialized_variable_info
getfield com.sun.tools.classfile.StackMapTable_attribute$Uninitialized_variable_info.offset:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.sun.tools.javap.StackMapWriter.print:(Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/sun/tools/javap/StackMapWriter;
0 29 1 entry Lcom/sun/tools/classfile/StackMapTable_attribute$verification_type_info;
21 23 2 cp Lcom/sun/tools/classfile/ConstantPool;
22 23 3 class_info Lcom/sun/tools/classfile/ConstantPool$CONSTANT_Class_info;
Exception table:
from to target type
20 23 24 Class com.sun.tools.classfile.ConstantPoolException
MethodParameters:
Name Flags
entry
}
SourceFile: "StackMapWriter.java"
NestMembers:
com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo com.sun.tools.javap.StackMapWriter$StackMap com.sun.tools.javap.StackMapWriter$StackMapBuilder
InnerClasses:
public CONSTANT_Class_info = com.sun.tools.classfile.ConstantPool$CONSTANT_Class_info of com.sun.tools.classfile.ConstantPool
public InvalidDescriptor = com.sun.tools.classfile.Descriptor$InvalidDescriptor of com.sun.tools.classfile.Descriptor
public Object_variable_info = com.sun.tools.classfile.StackMapTable_attribute$Object_variable_info of com.sun.tools.classfile.StackMapTable_attribute
public Uninitialized_variable_info = com.sun.tools.classfile.StackMapTable_attribute$Uninitialized_variable_info of com.sun.tools.classfile.StackMapTable_attribute
public abstract stack_map_frame = com.sun.tools.classfile.StackMapTable_attribute$stack_map_frame of com.sun.tools.classfile.StackMapTable_attribute
public abstract Visitor = com.sun.tools.classfile.StackMapTable_attribute$stack_map_frame$Visitor of com.sun.tools.classfile.StackMapTable_attribute$stack_map_frame
public verification_type_info = com.sun.tools.classfile.StackMapTable_attribute$verification_type_info of com.sun.tools.classfile.StackMapTable_attribute
CustomVerificationTypeInfo = com.sun.tools.javap.StackMapWriter$CustomVerificationTypeInfo of com.sun.tools.javap.StackMapWriter
StackMap = com.sun.tools.javap.StackMapWriter$StackMap of com.sun.tools.javap.StackMapWriter
StackMapBuilder = com.sun.tools.javap.StackMapWriter$StackMapBuilder of com.sun.tools.javap.StackMapWriter