class com.sun.java.util.jar.pack.ClassWriter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.java.util.jar.pack.ClassWriter
super_class: java.lang.Object
{
int verbose;
descriptor: I
flags: (0x0000)
com.sun.java.util.jar.pack.Package pkg;
descriptor: Lcom/sun/java/util/jar/pack/Package;
flags: (0x0000)
com.sun.java.util.jar.pack.Package$Class cls;
descriptor: Lcom/sun/java/util/jar/pack/Package$Class;
flags: (0x0000)
java.io.DataOutputStream out;
descriptor: Ljava/io/DataOutputStream;
flags: (0x0000)
com.sun.java.util.jar.pack.ConstantPool$Index cpIndex;
descriptor: Lcom/sun/java/util/jar/pack/ConstantPool$Index;
flags: (0x0000)
com.sun.java.util.jar.pack.ConstantPool$Index bsmIndex;
descriptor: Lcom/sun/java/util/jar/pack/ConstantPool$Index;
flags: (0x0000)
java.io.ByteArrayOutputStream buf;
descriptor: Ljava/io/ByteArrayOutputStream;
flags: (0x0000)
java.io.DataOutputStream bufOut;
descriptor: Ljava/io/DataOutputStream;
flags: (0x0000)
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/sun/java/util/jar/pack/ClassWriter;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.sun.java.util.jar.pack.ClassWriter.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.sun.java.util.jar.pack.Package$Class, java.io.OutputStream);
descriptor: (Lcom/sun/java/util/jar/pack/Package$Class;Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
putfield com.sun.java.util.jar.pack.ClassWriter.buf:Ljava/io/ByteArrayOutputStream;
2: aload 0
new java.io.DataOutputStream
dup
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.buf:Ljava/io/ByteArrayOutputStream;
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
putfield com.sun.java.util.jar.pack.ClassWriter.bufOut:Ljava/io/DataOutputStream;
3: aload 0
aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.getPackage:()Lcom/sun/java/util/jar/pack/Package;
putfield com.sun.java.util.jar.pack.ClassWriter.pkg:Lcom/sun/java/util/jar/pack/Package;
4: aload 0
aload 1
putfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
5: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.pkg:Lcom/sun/java/util/jar/pack/Package;
getfield com.sun.java.util.jar.pack.Package.verbose:I
putfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
6: aload 0
new java.io.DataOutputStream
dup
new java.io.BufferedOutputStream
dup
aload 2
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
putfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
7: aload 0
aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.toString:()Ljava/lang/String;
aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.getCPMap:()[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokestatic com.sun.java.util.jar.pack.ConstantPool.makeIndex:(Ljava/lang/String;[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)Lcom/sun/java/util/jar/pack/ConstantPool$Index;
putfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
8: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
iconst_1
putfield com.sun.java.util.jar.pack.ConstantPool$Index.flattenSigs:Z
9: aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.hasBootstrapMethods:()Z
ifeq 13
10: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
getfield com.sun.java.util.jar.pack.ConstantPool$Index.debugName:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".BootstrapMethods"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.getBootstrapMethodMap:()[Lcom/sun/java/util/jar/pack/ConstantPool$BootstrapMethodEntry;
12: invokestatic com.sun.java.util.jar.pack.ConstantPool.makeIndex:(Ljava/lang/String;[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)Lcom/sun/java/util/jar/pack/ConstantPool$Index;
putfield com.sun.java.util.jar.pack.ClassWriter.bsmIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
13: StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.io.OutputStream
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_1
if_icmple 17
14: getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "local CP="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_2
if_icmple 15
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Index.dumpString:()Ljava/lang/String;
goto 16
StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.io.OutputStream
StackMap stack: com.sun.java.util.jar.pack.Utils$Pack200Logger java.lang.StringBuilder
15: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Index.toString:()Ljava/lang/String;
StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.io.OutputStream
StackMap stack: com.sun.java.util.jar.pack.Utils$Pack200Logger java.lang.StringBuilder java.lang.String
16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 18 1 cls Lcom/sun/java/util/jar/pack/Package$Class;
0 18 2 out Ljava/io/OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cls
out
private void writeShort(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.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
iload 1
invokevirtual java.io.DataOutputStream.writeShort:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 2 1 x I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
x
private void writeInt(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.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
iload 1
invokevirtual java.io.DataOutputStream.writeInt:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 2 1 x I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
x
private void writeRef(com.sun.java.util.jar.pack.ConstantPool$Entry);
descriptor: (Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;Lcom/sun/java/util/jar/pack/ConstantPool$Index;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 2 1 e Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
private void writeRef(com.sun.java.util.jar.pack.ConstantPool$Entry, com.sun.java.util.jar.pack.ConstantPool$Index);
descriptor: (Lcom/sun/java/util/jar/pack/ConstantPool$Entry;Lcom/sun/java/util/jar/pack/ConstantPool$Index;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 2
aload 1
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Index.indexOf:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)I
StackMap locals:
StackMap stack: int
2: istore 3
start local 3 3: aload 0
iload 3
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 5 1 e Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
0 5 2 cpIndex Lcom/sun/java/util/jar/pack/ConstantPool$Index;
3 5 3 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
cpIndex
void write();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_1
if_icmple 2
getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "...writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
2: StackMap locals: int
StackMap stack:
aload 0
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeMagicNumbers:()V
3: aload 0
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeConstantPool:()V
4: aload 0
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeHeader:()V
5: aload 0
iconst_0
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeMembers:(Z)V
6: aload 0
iconst_1
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeMembers:(Z)V
7: aload 0
iconst_0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeAttributes:(ILcom/sun/java/util/jar/pack/Attribute$Holder;)V
8: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
invokevirtual java.io.DataOutputStream.flush:()V
9: iconst_1
istore 1
10: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 2
12: iload 1
ifne 14
13: getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "Error on output of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.warning:(Ljava/lang/String;)V
14: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
athrow
15: StackMap locals:
StackMap stack:
iload 1
ifne 17
16: getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "Error on output of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.warning:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
1 18 1 ok Z
Exception table:
from to target type
1 11 11 any
Exceptions:
throws java.io.IOException
void writeMagicNumbers();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.magic:I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeInt:(I)V
1: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.version:Lcom/sun/java/util/jar/pack/Package$Version;
getfield com.sun.java.util.jar.pack.Package$Version.minor:S
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.version:Lcom/sun/java/util/jar/pack/Package$Version;
getfield com.sun.java.util.jar.pack.Package$Version.major:S
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
Exceptions:
throws java.io.IOException
void writeConstantPool();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.cpMap:[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
astore 1
start local 1 1: aload 0
aload 1
arraylength
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: iconst_0
istore 2
start local 2 3: goto 44
4: StackMap locals: com.sun.java.util.jar.pack.ConstantPool$Entry[] int
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 5: getstatic com.sun.java.util.jar.pack.ClassWriter.$assertionsDisabled:Z
ifne 11
aload 3
ifnonnull 6
iconst_1
goto 7
StackMap locals: com.sun.java.util.jar.pack.ConstantPool$Entry
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: iload 2
ifeq 9
aload 1
iload 2
iconst_1
isub
aaload
ifnull 8
aload 1
iload 2
iconst_1
isub
aaload
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.isDoubleWord:()Z
ifne 9
StackMap locals:
StackMap stack: int
8: iconst_0
goto 10
StackMap locals:
StackMap stack: int
9: iconst_1
StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.ConstantPool$Entry[] int com.sun.java.util.jar.pack.ConstantPool$Entry
StackMap stack: int int
10: if_icmpeq 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
aload 3
ifnonnull 12
goto 43
12: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.getTag:()B
istore 4
start local 4 13: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_2
if_icmple 14
getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc " CP["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
14: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
iload 4
invokevirtual java.io.DataOutputStream.write:(I)V
15: iload 4
tableswitch { // 1 - 18
1: 17
2: 42
3: 19
4: 21
5: 24
6: 26
7: 29
8: 29
9: 35
10: 35
11: 35
12: 35
13: 16
14: 42
15: 31
16: 29
17: 41
18: 38
default: 42
}
16: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "CP should have Signatures remapped to Utf8"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 3
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.stringValue:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
18: goto 43
19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 3
checkcast com.sun.java.util.jar.pack.ConstantPool$NumberEntry
invokevirtual com.sun.java.util.jar.pack.ConstantPool$NumberEntry.numberValue:()Ljava/lang/Number;
invokevirtual java.lang.Number.intValue:()I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
20: goto 43
21: StackMap locals:
StackMap stack:
aload 3
checkcast com.sun.java.util.jar.pack.ConstantPool$NumberEntry
invokevirtual com.sun.java.util.jar.pack.ConstantPool$NumberEntry.numberValue:()Ljava/lang/Number;
invokevirtual java.lang.Number.floatValue:()F
fstore 5
start local 5 22: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
fload 5
invokestatic java.lang.Float.floatToRawIntBits:(F)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
23: goto 43
end local 5 24: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 3
checkcast com.sun.java.util.jar.pack.ConstantPool$NumberEntry
invokevirtual com.sun.java.util.jar.pack.ConstantPool$NumberEntry.numberValue:()Ljava/lang/Number;
invokevirtual java.lang.Number.longValue:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
25: goto 43
26: StackMap locals:
StackMap stack:
aload 3
checkcast com.sun.java.util.jar.pack.ConstantPool$NumberEntry
invokevirtual com.sun.java.util.jar.pack.ConstantPool$NumberEntry.numberValue:()Ljava/lang/Number;
invokevirtual java.lang.Number.doubleValue:()D
dstore 6
start local 6 27: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
dload 6
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
28: goto 43
end local 6 29: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.getRef:(I)Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
30: goto 43
31: StackMap locals:
StackMap stack:
aload 3
checkcast com.sun.java.util.jar.pack.ConstantPool$MethodHandleEntry
astore 8
start local 8 32: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 8
getfield com.sun.java.util.jar.pack.ConstantPool$MethodHandleEntry.refKind:I
invokevirtual java.io.DataOutputStream.writeByte:(I)V
33: aload 0
aload 8
iconst_0
invokevirtual com.sun.java.util.jar.pack.ConstantPool$MethodHandleEntry.getRef:(I)Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
34: goto 43
end local 8 35: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.getRef:(I)Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
36: aload 0
aload 3
iconst_1
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.getRef:(I)Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
37: goto 43
38: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.getRef:(I)Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.bsmIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;Lcom/sun/java/util/jar/pack/ConstantPool$Index;)V
39: aload 0
aload 3
iconst_1
invokevirtual com.sun.java.util.jar.pack.ConstantPool$Entry.getRef:(I)Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
40: goto 43
41: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "CP should have BootstrapMethods moved to side-table"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
42: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Bad constant pool tag "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 43: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
44: iload 2
aload 1
arraylength
if_icmplt 4
end local 2 45: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
1 46 1 cpMap [Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
3 45 2 i I
5 43 3 e Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
13 43 4 tag B
22 24 5 fval F
27 29 6 dval D
32 35 8 mhe Lcom/sun/java/util/jar/pack/ConstantPool$MethodHandleEntry;
Exceptions:
throws java.io.IOException
void ();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.flags:I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
1: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.thisClass:Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
2: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.superClass:Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
3: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.interfaces:[Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
arraylength
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
4: iconst_0
istore 1
start local 1 5: goto 8
6: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.interfaces:[Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
iload 1
aaload
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
7: iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
getfield com.sun.java.util.jar.pack.Package$Class.interfaces:[Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
arraylength
if_icmplt 6
end local 1 9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
5 9 1 i I
Exceptions:
throws java.io.IOException
void writeMembers(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iload 1
ifne 3
1: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual com.sun.java.util.jar.pack.Package$Class.getFields:()Ljava/util/List;
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual com.sun.java.util.jar.pack.Package$Class.getMethods:()Ljava/util/List;
astore 2
start local 2 4: StackMap locals: java.util.List
StackMap stack:
aload 0
aload 2
invokeinterface java.util.List.size:()I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
5: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: com.sun.java.util.jar.pack.ClassWriter int java.util.List top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.java.util.jar.pack.Package$Class$Member
astore 3
start local 3 7: aload 0
aload 3
iload 1
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeMember:(Lcom/sun/java/util/jar/pack/Package$Class$Member;Z)V
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 10 1 doMethods Z
2 3 2 mems Ljava/util/List<+Lcom/sun/java/util/jar/pack/Package$Class$Member;>;
4 10 2 mems Ljava/util/List<+Lcom/sun/java/util/jar/pack/Package$Class$Member;>;
7 8 3 m Lcom/sun/java/util/jar/pack/Package$Class$Member;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
doMethods
void writeMember(com.sun.java.util.jar.pack.Package$Class$Member, boolean);
descriptor: (Lcom/sun/java/util/jar/pack/Package$Class$Member;Z)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_2
if_icmple 1
getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "writeMember "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield com.sun.java.util.jar.pack.Package$Class$Member.flags:I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: aload 0
aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class$Member.getDescriptor:()Lcom/sun/java/util/jar/pack/ConstantPool$DescriptorEntry;
getfield com.sun.java.util.jar.pack.ConstantPool$DescriptorEntry.nameRef:Lcom/sun/java/util/jar/pack/ConstantPool$Utf8Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
3: aload 0
aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class$Member.getDescriptor:()Lcom/sun/java/util/jar/pack/ConstantPool$DescriptorEntry;
getfield com.sun.java.util.jar.pack.ConstantPool$DescriptorEntry.typeRef:Lcom/sun/java/util/jar/pack/ConstantPool$SignatureEntry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
4: aload 0
iload 2
ifne 5
iconst_1
goto 6
StackMap locals:
StackMap stack: com.sun.java.util.jar.pack.ClassWriter
5: iconst_2
6: StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class$Member int
StackMap stack: com.sun.java.util.jar.pack.ClassWriter int
aload 1
7: invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeAttributes:(ILcom/sun/java/util/jar/pack/Attribute$Holder;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 9 1 m Lcom/sun/java/util/jar/pack/Package$Class$Member;
0 9 2 doMethod Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
m
doMethod
private void reorderBSMandICS(com.sun.java.util.jar.pack.Attribute$Holder);
descriptor: (Lcom/sun/java/util/jar/pack/Attribute$Holder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getstatic com.sun.java.util.jar.pack.Package.attrBootstrapMethodsEmpty:Lcom/sun/java/util/jar/pack/Attribute$Layout;
invokevirtual com.sun.java.util.jar.pack.Attribute$Holder.getAttribute:(Lcom/sun/java/util/jar/pack/Attribute$Layout;)Lcom/sun/java/util/jar/pack/Attribute;
astore 2
start local 2 1: aload 2
ifnonnull 2
return
2: StackMap locals: com.sun.java.util.jar.pack.Attribute
StackMap stack:
aload 1
getstatic com.sun.java.util.jar.pack.Package.attrInnerClassesEmpty:Lcom/sun/java/util/jar/pack/Attribute$Layout;
invokevirtual com.sun.java.util.jar.pack.Attribute$Holder.getAttribute:(Lcom/sun/java/util/jar/pack/Attribute$Layout;)Lcom/sun/java/util/jar/pack/Attribute;
astore 3
start local 3 3: aload 3
ifnonnull 4
return
4: StackMap locals: com.sun.java.util.jar.pack.Attribute
StackMap stack:
aload 1
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
aload 2
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
istore 4
start local 4 5: aload 1
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
aload 3
invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
istore 5
start local 5 6: iload 4
iload 5
if_icmple 9
7: aload 1
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
aload 2
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
8: aload 1
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
iload 5
aload 2
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
9: StackMap locals: int int
StackMap stack:
return
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 10 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 10 1 h Lcom/sun/java/util/jar/pack/Attribute$Holder;
1 10 2 bsmAttr Lcom/sun/java/util/jar/pack/Attribute;
3 10 3 icsAttr Lcom/sun/java/util/jar/pack/Attribute;
5 10 4 bsmidx I
6 10 5 icsidx I
MethodParameters:
Name Flags
h
void writeAttributes(int, com.sun.java.util.jar.pack.Attribute$Holder);
descriptor: (ILcom/sun/java/util/jar/pack/Attribute$Holder;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
ifnonnull 3
1: aload 0
iconst_0
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: return
3: StackMap locals:
StackMap stack:
aload 2
instanceof com.sun.java.util.jar.pack.Package$Class
ifeq 5
4: aload 0
aload 2
invokevirtual com.sun.java.util.jar.pack.ClassWriter.reorderBSMandICS:(Lcom/sun/java/util/jar/pack/Attribute$Holder;)V
5: StackMap locals:
StackMap stack:
aload 0
aload 2
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
6: aload 2
getfield com.sun.java.util.jar.pack.Attribute$Holder.attributes:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 40
StackMap locals: com.sun.java.util.jar.pack.ClassWriter int com.sun.java.util.jar.pack.Attribute$Holder top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.java.util.jar.pack.Attribute
astore 3
start local 3 8: aload 3
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
invokevirtual com.sun.java.util.jar.pack.Attribute.finishRefs:(Lcom/sun/java/util/jar/pack/ConstantPool$Index;)V
9: aload 0
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.getNameRef:()Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
10: aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.layout:()Lcom/sun/java/util/jar/pack/Attribute$Layout;
getstatic com.sun.java.util.jar.pack.Package.attrCodeEmpty:Lcom/sun/java/util/jar/pack/Attribute$Layout;
if_acmpeq 13
11: aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.layout:()Lcom/sun/java/util/jar/pack/Attribute$Layout;
getstatic com.sun.java.util.jar.pack.Package.attrBootstrapMethodsEmpty:Lcom/sun/java/util/jar/pack/Attribute$Layout;
if_acmpeq 13
12: aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.layout:()Lcom/sun/java/util/jar/pack/Attribute$Layout;
getstatic com.sun.java.util.jar.pack.Package.attrInnerClassesEmpty:Lcom/sun/java/util/jar/pack/Attribute$Layout;
if_acmpne 36
13: StackMap locals: com.sun.java.util.jar.pack.ClassWriter int com.sun.java.util.jar.pack.Attribute$Holder com.sun.java.util.jar.pack.Attribute java.util.Iterator
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
astore 5
start local 5 14: getstatic com.sun.java.util.jar.pack.ClassWriter.$assertionsDisabled:Z
ifne 15
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.bufOut:Ljava/io/DataOutputStream;
if_acmpne 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals: java.io.DataOutputStream
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.buf:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.reset:()V
16: aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.bufOut:Ljava/io/DataOutputStream;
putfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
17: ldc "Code"
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.name:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
18: aload 2
checkcast com.sun.java.util.jar.pack.Package$Class$Method
astore 6
start local 6 19: aload 0
aload 6
getfield com.sun.java.util.jar.pack.Package$Class$Method.code:Lcom/sun/java/util/jar/pack/Code;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeCode:(Lcom/sun/java/util/jar/pack/Code;)V
end local 6 20: goto 30
StackMap locals:
StackMap stack:
21: ldc "BootstrapMethods"
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.name:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
22: getstatic com.sun.java.util.jar.pack.ClassWriter.$assertionsDisabled:Z
ifne 23
aload 2
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
if_acmpeq 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeBootstrapMethods:(Lcom/sun/java/util/jar/pack/Package$Class;)V
24: goto 30
StackMap locals:
StackMap stack:
25: ldc "InnerClasses"
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.name:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 29
26: getstatic com.sun.java.util.jar.pack.ClassWriter.$assertionsDisabled:Z
ifne 27
aload 2
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
if_acmpeq 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cls:Lcom/sun/java/util/jar/pack/Package$Class;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeInnerClasses:(Lcom/sun/java/util/jar/pack/Package$Class;)V
28: goto 30
29: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
31: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_2
if_icmple 33
32: getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "Attribute "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.buf:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
33: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.buf:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeInt:(I)V
34: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.buf:Ljava/io/ByteArrayOutputStream;
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
invokevirtual java.io.ByteArrayOutputStream.writeTo:(Ljava/io/OutputStream;)V
end local 5 35: goto 40
36: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.verbose:I
iconst_2
if_icmple 38
37: getstatic com.sun.java.util.jar.pack.Utils.log:Lcom/sun/java/util/jar/pack/Utils$Pack200Logger;
new java.lang.StringBuilder
dup
ldc "Attribute "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.java.util.jar.pack.Utils$Pack200Logger.fine:(Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.size:()I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeInt:(I)V
39: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 3
invokevirtual com.sun.java.util.jar.pack.Attribute.bytes:()[B
invokevirtual java.io.DataOutputStream.write:([B)V
end local 3 40: StackMap locals: com.sun.java.util.jar.pack.ClassWriter int com.sun.java.util.jar.pack.Attribute$Holder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
41: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 42 1 ctype I
0 42 2 h Lcom/sun/java/util/jar/pack/Attribute$Holder;
8 40 3 a Lcom/sun/java/util/jar/pack/Attribute;
14 35 5 savedOut Ljava/io/DataOutputStream;
19 20 6 m Lcom/sun/java/util/jar/pack/Package$Class$Method;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ctype
h
void writeCode(com.sun.java.util.jar.pack.Code);
descriptor: (Lcom/sun/java/util/jar/pack/Code;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.cpIndex:Lcom/sun/java/util/jar/pack/ConstantPool$Index;
invokevirtual com.sun.java.util.jar.pack.Code.finishRefs:(Lcom/sun/java/util/jar/pack/ConstantPool$Index;)V
1: aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.max_stack:I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.max_locals:I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
3: aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.bytes:[B
arraylength
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeInt:(I)V
4: aload 0
getfield com.sun.java.util.jar.pack.ClassWriter.out:Ljava/io/DataOutputStream;
aload 1
getfield com.sun.java.util.jar.pack.Code.bytes:[B
invokevirtual java.io.DataOutputStream.write:([B)V
5: aload 1
invokevirtual com.sun.java.util.jar.pack.Code.getHandlerCount:()I
istore 2
start local 2 6: aload 0
iload 2
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
7: iconst_0
istore 3
start local 3 8: goto 14
9: StackMap locals: int int
StackMap stack:
aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.handler_start:[I
iload 3
iaload
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
10: aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.handler_end:[I
iload 3
iaload
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
11: aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.handler_catch:[I
iload 3
iaload
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
12: aload 0
aload 1
getfield com.sun.java.util.jar.pack.Code.handler_class:[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
iload 3
aaload
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
13: iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
iload 2
if_icmplt 9
end local 3 15: aload 0
iconst_3
aload 1
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeAttributes:(ILcom/sun/java/util/jar/pack/Attribute$Holder;)V
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 17 1 code Lcom/sun/java/util/jar/pack/Code;
6 17 2 nh I
8 15 3 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
code
void writeBootstrapMethods(com.sun.java.util.jar.pack.Package$Class);
descriptor: (Lcom/sun/java/util/jar/pack/Package$Class;)V
flags: (0x0000)
Code:
stack=2, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.getBootstrapMethods:()Ljava/util/List;
astore 2
start local 2 1: aload 0
aload 2
invokeinterface java.util.List.size:()I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.util.List top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.java.util.jar.pack.ConstantPool$BootstrapMethodEntry
astore 3
start local 3 4: aload 0
aload 3
getfield com.sun.java.util.jar.pack.ConstantPool$BootstrapMethodEntry.bsmRef:Lcom/sun/java/util/jar/pack/ConstantPool$MethodHandleEntry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
5: aload 0
aload 3
getfield com.sun.java.util.jar.pack.ConstantPool$BootstrapMethodEntry.argRefs:[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
arraylength
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
6: aload 3
getfield com.sun.java.util.jar.pack.ConstantPool$BootstrapMethodEntry.argRefs:[Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 10
StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.util.List com.sun.java.util.jar.pack.ConstantPool$BootstrapMethodEntry java.util.Iterator top int int com.sun.java.util.jar.pack.ConstantPool$Entry[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 0
aload 5
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
end local 5 9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 7
if_icmplt 7
end local 3 11: StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 13 1 cls Lcom/sun/java/util/jar/pack/Package$Class;
1 13 2 bsms Ljava/util/List<Lcom/sun/java/util/jar/pack/ConstantPool$BootstrapMethodEntry;>;
4 11 3 e Lcom/sun/java/util/jar/pack/ConstantPool$BootstrapMethodEntry;
8 9 5 argRef Lcom/sun/java/util/jar/pack/ConstantPool$Entry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cls
void writeInnerClasses(com.sun.java.util.jar.pack.Package$Class);
descriptor: (Lcom/sun/java/util/jar/pack/Package$Class;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.java.util.jar.pack.Package$Class.getInnerClasses:()Ljava/util/List;
astore 2
start local 2 1: aload 0
aload 2
invokeinterface java.util.List.size:()I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
2: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: com.sun.java.util.jar.pack.ClassWriter com.sun.java.util.jar.pack.Package$Class java.util.List top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.java.util.jar.pack.Package$InnerClass
astore 3
start local 3 4: aload 0
aload 3
getfield com.sun.java.util.jar.pack.Package$InnerClass.thisClass:Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
5: aload 0
aload 3
getfield com.sun.java.util.jar.pack.Package$InnerClass.outerClass:Lcom/sun/java/util/jar/pack/ConstantPool$ClassEntry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
6: aload 0
aload 3
getfield com.sun.java.util.jar.pack.Package$InnerClass.name:Lcom/sun/java/util/jar/pack/ConstantPool$Utf8Entry;
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeRef:(Lcom/sun/java/util/jar/pack/ConstantPool$Entry;)V
7: aload 0
aload 3
getfield com.sun.java.util.jar.pack.Package$InnerClass.flags:I
invokevirtual com.sun.java.util.jar.pack.ClassWriter.writeShort:(I)V
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/java/util/jar/pack/ClassWriter;
0 10 1 cls Lcom/sun/java/util/jar/pack/Package$Class;
1 10 2 ics Ljava/util/List<Lcom/sun/java/util/jar/pack/Package$InnerClass;>;
4 8 3 ic Lcom/sun/java/util/jar/pack/Package$InnerClass;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cls
}
SourceFile: "ClassWriter.java"
InnerClasses:
public abstract Holder = com.sun.java.util.jar.pack.Attribute$Holder of com.sun.java.util.jar.pack.Attribute
public Layout = com.sun.java.util.jar.pack.Attribute$Layout of com.sun.java.util.jar.pack.Attribute
public BootstrapMethodEntry = com.sun.java.util.jar.pack.ConstantPool$BootstrapMethodEntry of com.sun.java.util.jar.pack.ConstantPool
public DescriptorEntry = com.sun.java.util.jar.pack.ConstantPool$DescriptorEntry of com.sun.java.util.jar.pack.ConstantPool
public abstract Entry = com.sun.java.util.jar.pack.ConstantPool$Entry of com.sun.java.util.jar.pack.ConstantPool
public final Index = com.sun.java.util.jar.pack.ConstantPool$Index of com.sun.java.util.jar.pack.ConstantPool
public MethodHandleEntry = com.sun.java.util.jar.pack.ConstantPool$MethodHandleEntry of com.sun.java.util.jar.pack.ConstantPool
public NumberEntry = com.sun.java.util.jar.pack.ConstantPool$NumberEntry of com.sun.java.util.jar.pack.ConstantPool
public final Class = com.sun.java.util.jar.pack.Package$Class of com.sun.java.util.jar.pack.Package
public Field = com.sun.java.util.jar.pack.Package$Class$Field of com.sun.java.util.jar.pack.Package$Class
public abstract Member = com.sun.java.util.jar.pack.Package$Class$Member of com.sun.java.util.jar.pack.Package$Class
public Method = com.sun.java.util.jar.pack.Package$Class$Method of com.sun.java.util.jar.pack.Package$Class
InnerClass = com.sun.java.util.jar.pack.Package$InnerClass of com.sun.java.util.jar.pack.Package
protected final Version = com.sun.java.util.jar.pack.Package$Version of com.sun.java.util.jar.pack.Package
Pack200Logger = com.sun.java.util.jar.pack.Utils$Pack200Logger of com.sun.java.util.jar.pack.Utils