public class com.oracle.svm.jvmtiagentbase.ConstantPoolTool
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.jvmtiagentbase.ConstantPoolTool
super_class: java.lang.Object
{
private static final int INVALID_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private final java.nio.ByteBuffer buffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int cachedIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int cachedIndexOffset;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndex:I
2: aload 0
iconst_0
putfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndexOffset:I
3: aload 0
aload 1
putfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool;
0 5 1 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
public com.oracle.svm.jvmtiagentbase.ConstantPoolTool$MethodReference readMethodReference(int);
descriptor: (I)Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$MethodReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
iload 1
getstatic com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.METHODREF:Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool.seekEntryPastTag:(ILcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;)V
1: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
2: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
invokestatic java.lang.Short.toUnsignedInt:(S)I
istore 2
start local 2 3: aload 0
iload 2
getstatic com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.NAMEANDTYPE:Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool.seekEntryPastTag:(ILcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;)V
4: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
invokestatic java.lang.Short.toUnsignedInt:(S)I
istore 3
start local 3 5: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
invokestatic java.lang.Short.toUnsignedInt:(S)I
istore 4
start local 4 6: aload 0
iload 3
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool.readUTF:(I)Ljava/lang/CharSequence;
astore 5
start local 5 7: aload 0
iload 4
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool.readUTF:(I)Ljava/lang/CharSequence;
astore 6
start local 6 8: new com.oracle.svm.jvmtiagentbase.ConstantPoolTool$MethodReference
dup
aload 5
aload 6
invokespecial com.oracle.svm.jvmtiagentbase.ConstantPoolTool$MethodReference.<init>:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
9: areturn
end local 6 end local 5 end local 4 end local 3 end local 2 10: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 11: new com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException
dup
ldc "Malformed constant pool"
aload 2
invokespecial com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool;
0 12 1 cpi I
3 10 2 nameAndTypeIndex I
5 10 3 nameIndex I
6 10 4 descriptorIndex I
7 10 5 name Ljava/lang/CharSequence;
8 10 6 descriptor Ljava/lang/CharSequence;
11 12 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 9 10 Class java.nio.BufferUnderflowException
0 9 10 Class java.lang.IllegalArgumentException
0 9 10 Class java.nio.charset.CharacterCodingException
MethodParameters:
Name Flags
cpi
private void seekEntryPastTag(int, com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind);
descriptor: (ILcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool.seekEntry:(I)V
1: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
invokestatic java.lang.Byte.toUnsignedInt:(B)I
istore 3
start local 3 2: iload 3
aload 2
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.ordinal:()I
if_icmpeq 4
3: new com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException
dup
new java.lang.StringBuilder
dup
ldc "Expected tag "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.ordinal:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool;
0 5 1 cpi I
0 5 2 expectedKind Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
2 5 3 tag I
MethodParameters:
Name Flags
cpi
expectedKind
private java.lang.CharSequence readUTF(int);
descriptor: (I)Ljava/lang/CharSequence;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
iload 1
getstatic com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.UTF8:Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
invokevirtual com.oracle.svm.jvmtiagentbase.ConstantPoolTool.seekEntryPastTag:(ILcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;)V
1: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
invokestatic java.lang.Short.toUnsignedInt:(S)I
istore 2
start local 2 2: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
istore 3
start local 3 3: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iload 2
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
4: getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
astore 5
5: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
6: aload 5
areturn
7: StackMap locals: com.oracle.svm.jvmtiagentbase.ConstantPoolTool int int int
StackMap stack: java.lang.Throwable
astore 4
8: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
iload 3
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
9: aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool;
0 10 1 cpi I
2 10 2 length I
3 10 3 previousLimit I
Exception table:
from to target type
4 5 7 any
Exceptions:
throws java.nio.charset.CharacterCodingException
MethodParameters:
Name Flags
cpi
private void seekEntry(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndex:I
if_icmplt 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: iload 2
ifeq 4
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndex:I
goto 5
StackMap locals: int
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: istore 3
start local 3 6: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
iload 2
ifeq 7
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndexOffset:I
goto 8
StackMap locals: com.oracle.svm.jvmtiagentbase.ConstantPoolTool int int int
StackMap stack: java.nio.ByteBuffer
7: iconst_0
StackMap locals: com.oracle.svm.jvmtiagentbase.ConstantPoolTool int int int
StackMap stack: java.nio.ByteBuffer int
8: invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
9: goto 21
10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
invokestatic java.lang.Byte.toUnsignedInt:(B)I
istore 4
start local 4 11: iload 4
getstatic com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.VALUES:[Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
arraylength
if_icmplt 13
12: new com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException
dup
new java.lang.StringBuilder
dup
ldc "Invalid constant pool entry 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 com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: int
StackMap stack:
getstatic com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.VALUES:[Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
iload 4
aaload
astore 5
start local 5 14: aload 5
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.lengthWithoutTag:I
istore 6
start local 6 15: aload 5
getstatic com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.UTF8:Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
if_acmpne 17
16: aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
invokestatic java.lang.Short.toUnsignedInt:(S)I
istore 6
17: StackMap locals: com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind int
StackMap stack:
iload 6
iflt 18
aload 5
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.tableEntries:I
ifgt 19
18: StackMap locals:
StackMap stack:
new com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException
dup
new java.lang.StringBuilder
dup
ldc "Invalid constant pool entry kind: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iload 6
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
20: iload 3
aload 5
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind.tableEntries:I
iadd
istore 3
end local 6 end local 5 end local 4 21: StackMap locals:
StackMap stack:
iload 3
iload 1
if_icmplt 10
22: iload 3
iload 1
if_icmpeq 24
23: new com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException
dup
new java.lang.StringBuilder
dup
ldc "Constant pool index is not valid or unusable: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndex:I
25: aload 0
aload 0
getfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
putfield com.oracle.svm.jvmtiagentbase.ConstantPoolTool.cachedIndexOffset:I
26: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool;
0 27 1 cpi I
3 27 2 resumeAtCachedIndex Z
6 27 3 index I
11 21 4 tag I
14 21 5 kind Lcom/oracle/svm/jvmtiagentbase/ConstantPoolTool$ConstantKind;
15 21 6 length I
MethodParameters:
Name Flags
cpi
}
SourceFile: "ConstantPoolTool.java"
NestMembers:
com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException com.oracle.svm.jvmtiagentbase.ConstantPoolTool$MethodReference
InnerClasses:
final ConstantKind = com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantKind of com.oracle.svm.jvmtiagentbase.ConstantPoolTool
public final ConstantPoolException = com.oracle.svm.jvmtiagentbase.ConstantPoolTool$ConstantPoolException of com.oracle.svm.jvmtiagentbase.ConstantPoolTool
public MethodReference = com.oracle.svm.jvmtiagentbase.ConstantPoolTool$MethodReference of com.oracle.svm.jvmtiagentbase.ConstantPoolTool