public class sun.tools.java.BinaryCode implements sun.tools.java.Constants
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.java.BinaryCode
super_class: java.lang.Object
{
int maxStack;
descriptor: I
flags: (0x0000)
int maxLocals;
descriptor: I
flags: (0x0000)
sun.tools.java.BinaryExceptionHandler[] exceptionHandlers;
descriptor: [Lsun/tools/java/BinaryExceptionHandler;
flags: (0x0000)
sun.tools.java.BinaryAttribute atts;
descriptor: Lsun/tools/java/BinaryAttribute;
flags: (0x0000)
sun.tools.java.BinaryConstantPool cpool;
descriptor: Lsun/tools/java/BinaryConstantPool;
flags: (0x0000)
byte[] code;
descriptor: [B
flags: (0x0000)
public void <init>(byte[], sun.tools.java.BinaryConstantPool, sun.tools.java.Environment);
descriptor: ([BLsun/tools/java/BinaryConstantPool;Lsun/tools/java/Environment;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new java.io.DataInputStream
dup
new java.io.ByteArrayInputStream
dup
aload 1
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 2: aload 0
aload 2
putfield sun.tools.java.BinaryCode.cpool:Lsun/tools/java/BinaryConstantPool;
3: aload 0
aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield sun.tools.java.BinaryCode.maxStack:I
4: aload 0
aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield sun.tools.java.BinaryCode.maxLocals:I
5: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 5
start local 5 6: aload 0
iload 5
newarray 8
putfield sun.tools.java.BinaryCode.code:[B
7: aload 4
aload 0
getfield sun.tools.java.BinaryCode.code:[B
invokevirtual java.io.DataInputStream.read:([B)I
pop
8: aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 6
start local 6 9: aload 0
iload 6
anewarray sun.tools.java.BinaryExceptionHandler
putfield sun.tools.java.BinaryCode.exceptionHandlers:[Lsun/tools/java/BinaryExceptionHandler;
10: iconst_0
istore 7
start local 7 11: goto 20
12: StackMap locals: sun.tools.java.BinaryCode byte[] sun.tools.java.BinaryConstantPool sun.tools.java.Environment java.io.DataInputStream int int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 8
start local 8 13: aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 9
start local 9 14: aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 10
start local 10 15: aload 2
aload 3
aload 4
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
invokevirtual sun.tools.java.BinaryConstantPool.getDeclaration:(Lsun/tools/java/Environment;I)Lsun/tools/java/ClassDeclaration;
astore 11
start local 11 16: aload 0
getfield sun.tools.java.BinaryCode.exceptionHandlers:[Lsun/tools/java/BinaryExceptionHandler;
iload 7
17: new sun.tools.java.BinaryExceptionHandler
dup
iload 8
iload 9
iload 10
aload 11
invokespecial sun.tools.java.BinaryExceptionHandler.<init>:(IIILsun/tools/java/ClassDeclaration;)V
18: aastore
end local 11 end local 10 end local 9 end local 8 19: iinc 7 1
StackMap locals:
StackMap stack:
20: iload 7
iload 6
if_icmplt 12
end local 7 21: aload 0
aload 4
aload 2
iconst_m1
invokestatic sun.tools.java.BinaryAttribute.load:(Ljava/io/DataInputStream;Lsun/tools/java/BinaryConstantPool;I)Lsun/tools/java/BinaryAttribute;
putfield sun.tools.java.BinaryCode.atts:Lsun/tools/java/BinaryAttribute;
22: aload 4
invokevirtual java.io.DataInputStream.available:()I
ifeq 27
23: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Should have exhausted input stream!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 6 end local 5 24: goto 27
StackMap locals: sun.tools.java.BinaryCode byte[] sun.tools.java.BinaryConstantPool sun.tools.java.Environment java.io.DataInputStream
StackMap stack: java.io.IOException
25: astore 5
start local 5 26: new sun.tools.java.CompilerError
dup
aload 5
invokespecial sun.tools.java.CompilerError.<init>:(Ljava/lang/Exception;)V
athrow
end local 5 27: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/tools/java/BinaryCode;
0 28 1 data [B
0 28 2 cpool Lsun/tools/java/BinaryConstantPool;
0 28 3 env Lsun/tools/java/Environment;
2 28 4 in Ljava/io/DataInputStream;
6 24 5 code_length I
9 24 6 exception_count I
11 21 7 i I
13 19 8 start I
14 19 9 end I
15 19 10 handler I
16 19 11 xclass Lsun/tools/java/ClassDeclaration;
26 27 5 e Ljava/io/IOException;
Exception table:
from to target type
2 24 25 Class java.io.IOException
MethodParameters:
Name Flags
data
cpool
env
public sun.tools.java.BinaryExceptionHandler[] getExceptionHandlers();
descriptor: ()[Lsun/tools/java/BinaryExceptionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.tools.java.BinaryCode.exceptionHandlers:[Lsun/tools/java/BinaryExceptionHandler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/java/BinaryCode;
public byte[] getCode();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.tools.java.BinaryCode.code:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/java/BinaryCode;
public int getMaxStack();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.tools.java.BinaryCode.maxStack:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/java/BinaryCode;
public int getMaxLocals();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.tools.java.BinaryCode.maxLocals:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/java/BinaryCode;
public sun.tools.java.BinaryAttribute getAttributes();
descriptor: ()Lsun/tools/java/BinaryAttribute;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.tools.java.BinaryCode.atts:Lsun/tools/java/BinaryAttribute;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/java/BinaryCode;
public static sun.tools.java.BinaryCode load(sun.tools.java.BinaryMember, sun.tools.java.BinaryConstantPool, sun.tools.java.Environment);
descriptor: (Lsun/tools/java/BinaryMember;Lsun/tools/java/BinaryConstantPool;Lsun/tools/java/Environment;)Lsun/tools/java/BinaryCode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getstatic sun.tools.java.BinaryCode.idCode:Lsun/tools/java/Identifier;
invokevirtual sun.tools.java.BinaryMember.getAttribute:(Lsun/tools/java/Identifier;)[B
astore 3
start local 3 1: aload 3
ifnull 2
new sun.tools.java.BinaryCode
dup
aload 3
aload 1
aload 2
invokespecial sun.tools.java.BinaryCode.<init>:([BLsun/tools/java/BinaryConstantPool;Lsun/tools/java/Environment;)V
goto 3
StackMap locals: byte[]
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: sun.tools.java.BinaryCode
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 bf Lsun/tools/java/BinaryMember;
0 4 1 cpool Lsun/tools/java/BinaryConstantPool;
0 4 2 env Lsun/tools/java/Environment;
1 4 3 code [B
MethodParameters:
Name Flags
bf
cpool
env
}
SourceFile: "BinaryCode.java"