class com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper
super_class: java.lang.Object
{
final java.lang.Object[] values;
descriptor: [Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final int[] offsets;
descriptor: [I
flags: (0x0010) ACC_FINAL
final com.sun.tools.javac.util.ByteBuffer poolbuf;
descriptor: Lcom/sun/tools/javac/util/ByteBuffer;
flags: (0x0010) ACC_FINAL
final com.sun.tools.javac.jvm.PoolReader this$0;
descriptor: Lcom/sun/tools/javac/jvm/PoolReader;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(com.sun.tools.javac.jvm.PoolReader, com.sun.tools.javac.util.ByteBuffer, int[]);
descriptor: (Lcom/sun/tools/javac/jvm/PoolReader;Lcom/sun/tools/javac/util/ByteBuffer;[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.this$0:Lcom/sun/tools/javac/jvm/PoolReader;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 3
putfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offsets:[I
2: aload 0
aload 3
arraylength
anewarray java.lang.Object
putfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.values:[Ljava/lang/Object;
3: aload 0
aload 2
putfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.poolbuf:Lcom/sun/tools/javac/util/ByteBuffer;
4: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/jvm/PoolReader$ImmutablePoolHelper;
0 5 2 poolbuf Lcom/sun/tools/javac/util/ByteBuffer;
0 5 3 offsets [I
MethodParameters:
Name Flags
this$0 final
poolbuf
offsets
private int checkIndex(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifle 1
iload 1
aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offsets:[I
arraylength
if_icmplt 4
1: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.this$0:Lcom/sun/tools/javac/jvm/PoolReader;
getfield com.sun.tools.javac.jvm.PoolReader.reader:Lcom/sun/tools/javac/jvm/ClassReader;
ldc "bad.const.pool.index"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.this$0:Lcom/sun/tools/javac/jvm/PoolReader;
getfield com.sun.tools.javac.jvm.PoolReader.reader:Lcom/sun/tools/javac/jvm/ClassReader;
getfield com.sun.tools.javac.jvm.ClassReader.currentClassFile:Ljavax/tools/JavaFileObject;
aastore
dup
iconst_1
2: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offsets:[I
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
3: invokevirtual com.sun.tools.javac.jvm.ClassReader.badClassFile:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/sun/tools/javac/code/ClassFinder$BadClassFile;
athrow
4: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/jvm/PoolReader$ImmutablePoolHelper;
0 5 1 index I
MethodParameters:
Name Flags
index
int offset(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offsets:[I
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.checkIndex:(I)I
iaload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolReader$ImmutablePoolHelper;
0 1 1 index I
MethodParameters:
Name Flags
index
<P> P readIfNeeded(int, java.util.BitSet);
descriptor: (ILjava/util/BitSet;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.values:[Ljava/lang/Object;
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.checkIndex:(I)I
aaload
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 3
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.tag:(I)I
istore 4
start local 4 4: aload 2
iload 4
invokevirtual java.util.BitSet.get:(I)Z
ifne 6
5: aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.this$0:Lcom/sun/tools/javac/jvm/PoolReader;
getfield com.sun.tools.javac.jvm.PoolReader.reader:Lcom/sun/tools/javac/jvm/ClassReader;
ldc "unexpected.const.pool.tag.at"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.tag:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offset:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.sun.tools.javac.jvm.ClassReader.badClassFile:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/sun/tools/javac/code/ClassFinder$BadClassFile;
athrow
6: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.this$0:Lcom/sun/tools/javac/jvm/PoolReader;
aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.poolbuf:Lcom/sun/tools/javac/util/ByteBuffer;
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.tag:(I)I
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offset:(I)I
invokevirtual com.sun.tools.javac.jvm.PoolReader.resolve:(Lcom/sun/tools/javac/util/ByteBuffer;II)Ljava/lang/Object;
astore 5
start local 5 7: aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.values:[Ljava/lang/Object;
iload 1
aload 5
aastore
8: aload 5
areturn
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 9 0 this Lcom/sun/tools/javac/jvm/PoolReader$ImmutablePoolHelper;
0 9 1 index I
0 9 2 expectedTags Ljava/util/BitSet;
1 9 3 v Ljava/lang/Object;
4 9 4 currentTag I
7 9 5 p TP;
Signature: <P:Ljava/lang/Object;>(ILjava/util/BitSet;)TP;
MethodParameters:
Name Flags
index
expectedTags
int tag(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.poolbuf:Lcom/sun/tools/javac/util/ByteBuffer;
getfield com.sun.tools.javac.util.ByteBuffer.elems:[B
aload 0
iload 1
invokevirtual com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper.offset:(I)I
iconst_1
isub
baload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolReader$ImmutablePoolHelper;
0 1 1 index I
MethodParameters:
Name Flags
index
}
SourceFile: "PoolReader.java"
NestHost: com.sun.tools.javac.jvm.PoolReader
InnerClasses:
public BadClassFile = com.sun.tools.javac.code.ClassFinder$BadClassFile of com.sun.tools.javac.code.ClassFinder
ImmutablePoolHelper = com.sun.tools.javac.jvm.PoolReader$ImmutablePoolHelper of com.sun.tools.javac.jvm.PoolReader