public class sun.invoke.anon.ConstantPoolParser
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.invoke.anon.ConstantPoolParser
super_class: java.lang.Object
{
final byte[] classFile;
descriptor: [B
flags: (0x0010) ACC_FINAL
final byte[] tags;
descriptor: [B
flags: (0x0010) ACC_FINAL
final char[] ;
descriptor: [C
flags: (0x0010) ACC_FINAL
int endOffset;
descriptor: I
flags: (0x0000)
char[] ;
descriptor: [C
flags: (0x0000)
private char[] charArray;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
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 Lsun/invoke/anon/ConstantPoolParser;
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 sun.invoke.anon.ConstantPoolParser.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 80
newarray 5
putfield sun.invoke.anon.ConstantPoolParser.charArray:[C
2: aload 0
aload 1
putfield sun.invoke.anon.ConstantPoolParser.classFile:[B
3: aload 0
aload 1
invokestatic sun.invoke.anon.ConstantPoolParser.parseHeader:([B)[C
putfield sun.invoke.anon.ConstantPoolParser.firstHeader:[C
4: aload 0
aload 0
getfield sun.invoke.anon.ConstantPoolParser.firstHeader:[C
iconst_4
caload
newarray 8
putfield sun.invoke.anon.ConstantPoolParser.tags:[B
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/invoke/anon/ConstantPoolParser;
0 6 1 classFile [B
Exceptions:
throws sun.invoke.anon.InvalidConstantPoolFormatException
MethodParameters:
Name Flags
classFile
public void <init>(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic sun.invoke.anon.AnonymousClassLoader.readClassFile:(Ljava/lang/Class;)[B
invokespecial sun.invoke.anon.ConstantPoolParser.<init>:([B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/invoke/anon/ConstantPoolParser;
0 2 1 templateClass Ljava/lang/Class<*>;
Exceptions:
throws java.io.IOException, sun.invoke.anon.InvalidConstantPoolFormatException
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
templateClass
public sun.invoke.anon.ConstantPoolPatch createPatch();
descriptor: ()Lsun/invoke/anon/ConstantPoolPatch;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.invoke.anon.ConstantPoolPatch
dup
aload 0
invokespecial sun.invoke.anon.ConstantPoolPatch.<init>:(Lsun/invoke/anon/ConstantPoolParser;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/invoke/anon/ConstantPoolParser;
public byte getTag(int);
descriptor: (I)B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getEndOffset:()I
pop
1: aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 1
baload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/invoke/anon/ConstantPoolParser;
0 2 1 index I
MethodParameters:
Name Flags
index
public int getLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.invoke.anon.ConstantPoolParser.firstHeader:[C
iconst_4
caload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/invoke/anon/ConstantPoolParser;
public int getStartOffset();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.invoke.anon.ConstantPoolParser.firstHeader:[C
arraylength
iconst_2
imul
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/invoke/anon/ConstantPoolParser;
public int getEndOffset();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.invoke.anon.ConstantPoolParser.endOffset:I
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "class file has not yet been parsed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.invoke.anon.ConstantPoolParser.endOffset:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/invoke/anon/ConstantPoolParser;
public int getThisClassIndex();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getEndOffset:()I
pop
1: aload 0
getfield sun.invoke.anon.ConstantPoolParser.secondHeader:[C
iconst_1
caload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/invoke/anon/ConstantPoolParser;
public int getTailLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.invoke.anon.ConstantPoolParser.classFile:[B
arraylength
aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getEndOffset:()I
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/invoke/anon/ConstantPoolParser;
public void writeHead(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.invoke.anon.ConstantPoolParser.classFile:[B
iconst_0
aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getEndOffset:()I
invokevirtual java.io.OutputStream.write:([BII)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/invoke/anon/ConstantPoolParser;
0 2 1 out Ljava/io/OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
void writePatchedHead(java.io.OutputStream, java.lang.Object[]);
descriptor: (Ljava/io/OutputStream;[Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.UnsupportedOperationException
dup
ldc "Not yet implemented"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/invoke/anon/ConstantPoolParser;
0 1 1 out Ljava/io/OutputStream;
0 1 2 patchArray [Ljava/lang/Object;
MethodParameters:
Name Flags
out
patchArray
public void writeTail(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.invoke.anon.ConstantPoolParser.classFile:[B
aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getEndOffset:()I
aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getTailLength:()I
invokevirtual java.io.OutputStream.write:([BII)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/invoke/anon/ConstantPoolParser;
0 2 1 out Ljava/io/OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
private static char[] (byte[]);
descriptor: ([B)[C
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: iconst_5
newarray 5
astore 1
start local 1 1: aload 0
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: char[] java.nio.ByteBuffer int
StackMap stack:
aload 1
iload 3
aload 2
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedShort:(Ljava/nio/ByteBuffer;)I
i2c
castore
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 1
arraylength
if_icmplt 4
end local 3 7: aload 1
iconst_0
caload
bipush 16
ishl
aload 1
iconst_1
caload
iconst_0
ishl
ior
istore 3
start local 3 8: iload 3
ldc -889275714
if_icmpeq 10
9: new sun.invoke.anon.InvalidConstantPoolFormatException
dup
new java.lang.StringBuilder
dup
ldc "invalid magic number "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial sun.invoke.anon.InvalidConstantPoolFormatException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 1
iconst_4
caload
istore 4
start local 4 11: iload 4
iconst_1
if_icmpge 13
12: new sun.invoke.anon.InvalidConstantPoolFormatException
dup
ldc "constant pool length < 1"
invokespecial sun.invoke.anon.InvalidConstantPoolFormatException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: int
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 classFile [B
1 14 1 result [C
2 14 2 buffer Ljava/nio/ByteBuffer;
3 7 3 i I
8 14 3 magic I
11 14 4 len I
Exceptions:
throws sun.invoke.anon.InvalidConstantPoolFormatException
MethodParameters:
Name Flags
classFile
public void parse(sun.invoke.anon.ConstantPoolVisitor);
descriptor: (Lsun/invoke/anon/ConstantPoolVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.invoke.anon.ConstantPoolParser.classFile:[B
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 2
aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getStartOffset:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
2: aload 0
invokevirtual sun.invoke.anon.ConstantPoolParser.getLength:()I
anewarray java.lang.Object
astore 3
start local 3 3: aload 0
aload 2
aload 3
aload 1
invokevirtual sun.invoke.anon.ConstantPoolParser.parseConstantPool:(Ljava/nio/ByteBuffer;[Ljava/lang/Object;Lsun/invoke/anon/ConstantPoolVisitor;)V
4: goto 7
StackMap locals: sun.invoke.anon.ConstantPoolParser sun.invoke.anon.ConstantPoolVisitor java.nio.ByteBuffer java.lang.Object[]
StackMap stack: java.nio.BufferUnderflowException
5: astore 4
start local 4 6: new sun.invoke.anon.InvalidConstantPoolFormatException
dup
aload 4
invokespecial sun.invoke.anon.InvalidConstantPoolFormatException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.invoke.anon.ConstantPoolParser.endOffset:I
ifne 15
8: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
putfield sun.invoke.anon.ConstantPoolParser.endOffset:I
9: aload 0
iconst_4
newarray 5
putfield sun.invoke.anon.ConstantPoolParser.secondHeader:[C
10: iconst_0
istore 4
start local 4 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 0
getfield sun.invoke.anon.ConstantPoolParser.secondHeader:[C
iload 4
aload 2
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedShort:(Ljava/nio/ByteBuffer;)I
i2c
castore
13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
aload 0
getfield sun.invoke.anon.ConstantPoolParser.secondHeader:[C
arraylength
if_icmplt 12
end local 4 15: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 1
invokevirtual sun.invoke.anon.ConstantPoolParser.resolveConstantPool:([Ljava/lang/Object;Lsun/invoke/anon/ConstantPoolVisitor;)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/invoke/anon/ConstantPoolParser;
0 17 1 visitor Lsun/invoke/anon/ConstantPoolVisitor;
1 17 2 buffer Ljava/nio/ByteBuffer;
3 17 3 values [Ljava/lang/Object;
6 7 4 e Ljava/nio/BufferUnderflowException;
11 15 4 i I
Exception table:
from to target type
3 4 5 Class java.nio.BufferUnderflowException
Exceptions:
throws sun.invoke.anon.InvalidConstantPoolFormatException
MethodParameters:
Name Flags
visitor
private char[] getCharArray(int);
descriptor: (I)[C
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield sun.invoke.anon.ConstantPoolParser.charArray:[C
arraylength
if_icmpgt 2
1: aload 0
getfield sun.invoke.anon.ConstantPoolParser.charArray:[C
areturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
newarray 5
dup_x1
putfield sun.invoke.anon.ConstantPoolParser.charArray:[C
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/invoke/anon/ConstantPoolParser;
0 3 1 utfLength I
MethodParameters:
Name Flags
utfLength
private void parseConstantPool(java.nio.ByteBuffer, java.lang.Object[], sun.invoke.anon.ConstantPoolVisitor);
descriptor: (Ljava/nio/ByteBuffer;[Ljava/lang/Object;Lsun/invoke/anon/ConstantPoolVisitor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_1
istore 4
start local 4 1: goto 31
2: StackMap locals: int
StackMap stack:
aload 1
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedByte:(Ljava/nio/ByteBuffer;)I
i2b
istore 5
start local 5 3: getstatic sun.invoke.anon.ConstantPoolParser.$assertionsDisabled:Z
ifne 4
aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 4
baload
ifeq 4
aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 4
baload
iload 5
if_icmpeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int
StackMap stack:
aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 4
iload 5
bastore
5: iload 5
tableswitch { // 1 - 12
1: 6
2: 30
3: 12
4: 15
5: 18
6: 21
7: 24
8: 24
9: 27
10: 27
11: 27
12: 27
default: 30
}
6: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedShort:(Ljava/nio/ByteBuffer;)I
istore 6
start local 6 7: aload 1
iload 6
aload 0
iload 6
invokevirtual sun.invoke.anon.ConstantPoolParser.getCharArray:(I)[C
invokestatic sun.invoke.anon.ConstantPoolParser.getUTF8:(Ljava/nio/ByteBuffer;I[C)Ljava/lang/String;
astore 7
start local 7 8: aload 3
iload 4
iconst_1
aload 7
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitUTF8:(IBLjava/lang/String;)V
9: aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 4
iload 5
bastore
10: aload 2
iload 4
iinc 4 1
aload 7
aastore
11: goto 31
end local 7 end local 6 12: StackMap locals:
StackMap stack:
aload 3
iload 4
iload 5
aload 1
invokevirtual java.nio.ByteBuffer.getInt:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitConstantValue:(IBLjava/lang/Object;)V
13: iinc 4 1
14: goto 31
15: StackMap locals:
StackMap stack:
aload 3
iload 4
iload 5
aload 1
invokevirtual java.nio.ByteBuffer.getFloat:()F
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitConstantValue:(IBLjava/lang/Object;)V
16: iinc 4 1
17: goto 31
18: StackMap locals:
StackMap stack:
aload 3
iload 4
iload 5
aload 1
invokevirtual java.nio.ByteBuffer.getLong:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitConstantValue:(IBLjava/lang/Object;)V
19: iinc 4 2
20: goto 31
21: StackMap locals:
StackMap stack:
aload 3
iload 4
iload 5
aload 1
invokevirtual java.nio.ByteBuffer.getDouble:()D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitConstantValue:(IBLjava/lang/Object;)V
22: iinc 4 2
23: goto 31
24: StackMap locals:
StackMap stack:
aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 4
iload 5
bastore
25: aload 2
iload 4
iinc 4 1
iconst_1
newarray 10
dup
iconst_0
aload 1
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedShort:(Ljava/nio/ByteBuffer;)I
iastore
aastore
26: goto 31
27: StackMap locals:
StackMap stack:
aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 4
iload 5
bastore
28: aload 2
iload 4
iinc 4 1
iconst_2
newarray 10
dup
iconst_0
aload 1
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedShort:(Ljava/nio/ByteBuffer;)I
iastore
dup
iconst_1
aload 1
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedShort:(Ljava/nio/ByteBuffer;)I
iastore
aastore
29: goto 31
30: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "invalid constant "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 5 31: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
arraylength
if_icmplt 2
end local 4 32: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/invoke/anon/ConstantPoolParser;
0 33 1 buffer Ljava/nio/ByteBuffer;
0 33 2 values [Ljava/lang/Object;
0 33 3 visitor Lsun/invoke/anon/ConstantPoolVisitor;
1 32 4 i I
3 31 5 tag B
7 12 6 utfLen I
8 12 7 value Ljava/lang/String;
Exceptions:
throws sun.invoke.anon.InvalidConstantPoolFormatException
MethodParameters:
Name Flags
buffer
values
visitor
private void resolveConstantPool(java.lang.Object[], sun.invoke.anon.ConstantPoolVisitor);
descriptor: ([Ljava/lang/Object;Lsun/invoke/anon/ConstantPoolVisitor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=15, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
istore 3
start local 3 1: aload 1
arraylength
iconst_1
isub
istore 4
start local 4 2: goto 48
3: StackMap locals: int int
StackMap stack:
iload 4
istore 5
start local 5 4: iload 3
iconst_1
isub
istore 6
start local 6 5: iload 3
istore 7
start local 7 6: goto 46
7: StackMap locals: int int int
StackMap stack:
aload 1
iload 7
aaload
astore 8
start local 8 8: aload 8
instanceof int[]
ifne 10
9: goto 45
10: StackMap locals: java.lang.Object
StackMap stack:
aload 8
checkcast int[]
astore 9
start local 9 11: aload 0
getfield sun.invoke.anon.ConstantPoolParser.tags:[B
iload 7
baload
istore 10
start local 10 12: iload 10
tableswitch { // 7 - 12
7: 17
8: 13
9: 29
10: 29
11: 29
12: 22
default: 45
}
13: StackMap locals: int[] int
StackMap stack:
aload 1
aload 9
iconst_0
iaload
aaload
checkcast java.lang.String
astore 11
start local 11 14: aload 2
iload 7
iload 10
aload 11
aload 9
iconst_0
iaload
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitConstantString:(IBLjava/lang/String;I)V
15: aload 1
iload 7
aconst_null
aastore
16: goto 45
end local 11 17: StackMap locals:
StackMap stack:
aload 1
aload 9
iconst_0
iaload
aaload
checkcast java.lang.String
astore 12
start local 12 18: aload 12
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 12
19: aload 2
iload 7
iload 10
aload 12
aload 9
iconst_0
iaload
invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitConstantString:(IBLjava/lang/String;I)V
20: aload 1
iload 7
aload 12
aastore
21: goto 45
end local 12 22: StackMap locals:
StackMap stack:
aload 1
aload 9
iconst_0
iaload
aaload
checkcast java.lang.String
astore 12
start local 12 23: aload 1
aload 9
iconst_1
iaload
aaload
checkcast java.lang.String
astore 13
start local 13 24: aload 2
iload 7
iload 10
aload 12
aload 13
25: aload 9
iconst_0
iaload
aload 9
iconst_1
iaload
26: invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitDescriptor:(IBLjava/lang/String;Ljava/lang/String;II)V
27: aload 1
iload 7
iconst_2
anewarray java.lang.String
dup
iconst_0
aload 12
aastore
dup
iconst_1
aload 13
aastore
aastore
28: goto 45
end local 13 end local 12 29: StackMap locals:
StackMap stack:
aload 1
aload 9
iconst_0
iaload
aaload
astore 12
start local 12 30: aload 1
aload 9
iconst_1
iaload
aaload
astore 13
start local 13 31: aload 12
instanceof java.lang.String
ifeq 33
32: aload 13
instanceof java.lang.String[]
ifne 36
33: StackMap locals: sun.invoke.anon.ConstantPoolParser java.lang.Object[] sun.invoke.anon.ConstantPoolVisitor int int int int int java.lang.Object int[] int top java.lang.Object java.lang.Object
StackMap stack:
iload 5
iload 7
if_icmple 34
iload 7
istore 5
34: StackMap locals:
StackMap stack:
iload 6
iload 7
if_icmpge 45
iload 7
istore 6
35: goto 45
36: StackMap locals:
StackMap stack:
aload 13
checkcast java.lang.String[]
astore 14
start local 14 37: aload 2
iload 7
iload 10
38: aload 12
checkcast java.lang.String
39: aload 14
iconst_0
aaload
40: aload 14
iconst_1
aaload
41: aload 9
iconst_0
iaload
aload 9
iconst_1
iaload
42: invokevirtual sun.invoke.anon.ConstantPoolVisitor.visitMemberRef:(IBLjava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
43: aload 1
iload 7
aconst_null
aastore
end local 14 end local 13 end local 12 44: goto 45
end local 10 end local 9 end local 8 45: StackMap locals: sun.invoke.anon.ConstantPoolParser java.lang.Object[] sun.invoke.anon.ConstantPoolVisitor int int int int int
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
46: iload 7
iload 4
if_icmple 7
end local 7 47: iload 5
istore 3
iload 6
istore 4
end local 6 end local 5 48: StackMap locals:
StackMap stack:
iload 3
iload 4
49: if_icmple 3
end local 4 end local 3 50: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lsun/invoke/anon/ConstantPoolParser;
0 51 1 values [Ljava/lang/Object;
0 51 2 visitor Lsun/invoke/anon/ConstantPoolVisitor;
1 50 3 beg I
2 50 4 end I
4 48 5 beg2 I
5 48 6 end2 I
6 47 7 i I
8 45 8 value Ljava/lang/Object;
11 45 9 array [I
12 45 10 tag B
14 17 11 stringBody Ljava/lang/String;
18 22 12 className Ljava/lang/String;
23 29 12 memberName Ljava/lang/String;
24 29 13 signature Ljava/lang/String;
30 44 12 className Ljava/lang/Object;
31 44 13 nameAndType Ljava/lang/Object;
37 44 14 nameAndTypeArray [Ljava/lang/String;
MethodParameters:
Name Flags
values
visitor
private static int getUnsignedByte(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
private static int getUnsignedShort(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedByte:(Ljava/nio/ByteBuffer;)I
istore 1
start local 1 1: aload 0
invokestatic sun.invoke.anon.ConstantPoolParser.getUnsignedByte:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 2: iload 1
bipush 8
ishl
iload 2
iconst_0
ishl
iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 buffer Ljava/nio/ByteBuffer;
1 3 1 b1 I
2 3 2 b2 I
MethodParameters:
Name Flags
buffer
private static java.lang.String getUTF8(java.nio.ByteBuffer, int, char[]);
descriptor: (Ljava/nio/ByteBuffer;I[C)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.nio.ByteBuffer.position:()I
iload 1
iadd
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 8
3: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 5
start local 5 4: iload 5
bipush 127
if_icmple 7
5: aload 0
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
6: aload 0
iload 3
aload 2
iload 4
invokestatic sun.invoke.anon.ConstantPoolParser.getUTF8Extended:(Ljava/nio/ByteBuffer;I[CI)Ljava/lang/String;
areturn
7: StackMap locals: int
StackMap stack:
aload 2
iload 4
iinc 4 1
iload 5
i2c
castore
end local 5 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
iload 3
if_icmplt 3
9: new java.lang.String
dup
aload 2
iconst_0
iload 4
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 buffer Ljava/nio/ByteBuffer;
0 10 1 utfLen I
0 10 2 charArray [C
1 10 3 utfLimit I
2 10 4 index I
4 8 5 c I
Exceptions:
throws sun.invoke.anon.InvalidConstantPoolFormatException
MethodParameters:
Name Flags
buffer
utfLen
charArray
private static java.lang.String getUTF8Extended(java.nio.ByteBuffer, int, char[], int);
descriptor: (Ljava/nio/ByteBuffer;I[CI)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: goto 28
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 4
start local 4 2: iload 4
iconst_4
ishr
tableswitch { // 0 - 14
0: 3
1: 3
2: 3
3: 3
4: 3
5: 3
6: 3
7: 3
8: 25
9: 25
10: 25
11: 25
12: 5
13: 5
14: 14
default: 25
}
3: StackMap locals: int
StackMap stack:
aload 2
iload 3
iinc 3 1
iload 4
i2c
castore
4: goto 28
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
istore 5
start local 5 6: iload 5
sipush 192
iand
sipush 128
if_icmpeq 10
7: new sun.invoke.anon.InvalidConstantPoolFormatException
dup
8: new java.lang.StringBuilder
dup
ldc "malformed input around byte "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial sun.invoke.anon.InvalidConstantPoolFormatException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: int
StackMap stack:
aload 2
iload 3
iinc 3 1
iload 4
bipush 31
iand
bipush 6
ishl
11: iload 5
bipush 63
iand
ior
i2c
12: castore
13: goto 28
end local 5 14: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
istore 5
start local 5 15: aload 0
invokevirtual java.nio.ByteBuffer.get:()B
istore 6
start local 6 16: iload 5
sipush 192
iand
sipush 128
if_icmpne 17
iload 6
sipush 192
iand
sipush 128
if_icmpeq 20
17: StackMap locals: int int
StackMap stack:
new sun.invoke.anon.InvalidConstantPoolFormatException
dup
18: new java.lang.StringBuilder
dup
ldc "malformed input around byte "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokespecial sun.invoke.anon.InvalidConstantPoolFormatException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 2
iload 3
iinc 3 1
iload 4
bipush 15
iand
bipush 12
ishl
21: iload 5
bipush 63
iand
bipush 6
ishl
ior
22: iload 6
bipush 63
iand
iconst_0
ishl
ior
i2c
23: castore
24: goto 28
end local 6 end local 5 25: StackMap locals:
StackMap stack:
new sun.invoke.anon.InvalidConstantPoolFormatException
dup
26: new java.lang.StringBuilder
dup
ldc "malformed input around byte "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokespecial sun.invoke.anon.InvalidConstantPoolFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 4 28: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
iload 1
if_icmplt 1
29: new java.lang.String
dup
aload 2
iconst_0
iload 3
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 buffer Ljava/nio/ByteBuffer;
0 30 1 utfLimit I
0 30 2 charArray [C
0 30 3 index I
2 28 4 c I
6 14 5 c2 I
15 25 5 c2 I
16 25 6 c3 I
Exceptions:
throws sun.invoke.anon.InvalidConstantPoolFormatException
MethodParameters:
Name Flags
buffer
utfLimit
charArray
index
}
SourceFile: "ConstantPoolParser.java"