public class com.sun.tools.javac.jvm.PoolWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.javac.jvm.PoolWriter
super_class: java.lang.Object
{
public static final int MAX_ENTRIES;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 65535
public static final int MAX_STRING_LENGTH;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 65535
private static final int POOL_BUF_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32767
private final com.sun.tools.javac.code.Types types;
descriptor: Lcom/sun/tools/javac/code/Types;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.sun.tools.javac.util.Names names;
descriptor: Lcom/sun/tools/javac/util/Names;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper pool;
descriptor: Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
flags: (0x0010) ACC_FINAL
final com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator signatureGen;
descriptor: Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
flags: (0x0010) ACC_FINAL
java.util.LinkedHashSet<com.sun.tools.javac.code.Symbol$ClassSymbol> innerClasses;
descriptor: Ljava/util/LinkedHashSet;
flags: (0x0000)
Signature: Ljava/util/LinkedHashSet<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;
java.util.Map<com.sun.tools.javac.jvm.PoolConstant$Dynamic$BsmKey, java.lang.Integer> bootstrapMethods;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic$BsmKey;Ljava/lang/Integer;>;
public void <init>(com.sun.tools.javac.code.Types, com.sun.tools.javac.util.Names);
descriptor: (Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/util/Names;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield com.sun.tools.javac.jvm.PoolWriter.innerClasses:Ljava/util/LinkedHashSet;
2: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield com.sun.tools.javac.jvm.PoolWriter.bootstrapMethods:Ljava/util/Map;
3: aload 0
aload 1
putfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
4: aload 0
aload 2
putfield com.sun.tools.javac.jvm.PoolWriter.names:Lcom/sun/tools/javac/util/Names;
5: aload 0
new com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator
dup
aload 0
aload 1
invokespecial com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.<init>:(Lcom/sun/tools/javac/jvm/PoolWriter;Lcom/sun/tools/javac/code/Types;)V
putfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
6: aload 0
new com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper
dup
aload 0
invokespecial com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.<init>:(Lcom/sun/tools/javac/jvm/PoolWriter;)V
putfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 8 1 types Lcom/sun/tools/javac/code/Types;
0 8 2 names Lcom/sun/tools/javac/util/Names;
MethodParameters:
Name Flags
types
names
int putClass(com.sun.tools.javac.code.Symbol$ClassSymbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putClass:(Lcom/sun/tools/javac/code/Type;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 csym Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
MethodParameters:
Name Flags
csym
int putClass(com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;)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.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
aload 1
invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 t Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
t
int putMember(com.sun.tools.javac.code.Symbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 s Lcom/sun/tools/javac/code/Symbol;
MethodParameters:
Name Flags
s
int putDynamic(com.sun.tools.javac.jvm.PoolConstant$Dynamic);
descriptor: (Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 d Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic;
MethodParameters:
Name Flags
d
int putDescriptor(com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;)I
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
aload 1
invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.typeSig:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/Name;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putName:(Lcom/sun/tools/javac/util/Name;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 t Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
t
int putDescriptor(com.sun.tools.javac.code.Symbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol;)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter.descriptorType:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putDescriptor:(Lcom/sun/tools/javac/code/Type;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 s Lcom/sun/tools/javac/code/Symbol;
MethodParameters:
Name Flags
s
int putSignature(com.sun.tools.javac.code.Symbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol;)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpne 2
1: aload 0
aload 0
aload 1
getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.classSig:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/Name;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putName:(Lcom/sun/tools/javac/util/Name;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.typeSig:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/Name;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putName:(Lcom/sun/tools/javac/util/Name;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 3 1 s Lcom/sun/tools/javac/code/Symbol;
MethodParameters:
Name Flags
s
int putConstant(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.lang.Integer
ifeq 2
1: aload 0
aload 1
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokestatic com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.Int:(I)Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putConstant:(Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Float
ifeq 4
3: aload 0
aload 1
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
invokestatic com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.Float:(F)Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putConstant:(Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)I
ireturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Long
ifeq 6
5: aload 0
aload 1
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
invokestatic com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.Long:(J)Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putConstant:(Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)I
ireturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Double
ifeq 8
7: aload 0
aload 1
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
invokestatic com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.Double:(D)Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putConstant:(Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)I
ireturn
8: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.String
ifeq 10
9: aload 0
aload 1
checkcast java.lang.String
invokestatic com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.String:(Ljava/lang/String;)Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putConstant:(Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)I
ireturn
10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "unexpected constant: "
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;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 11 1 o Ljava/lang/Object;
MethodParameters:
Name Flags
o
int putConstant(com.sun.tools.javac.jvm.PoolConstant$LoadableConstant);
descriptor: (Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.poolTag:()I
lookupswitch { // 2
7: 1
16: 2
default: 3
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.jvm.PoolWriter.putClass:(Lcom/sun/tools/javac/code/Type;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
aload 1
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 4 1 c Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
MethodParameters:
Name Flags
c
int putName(com.sun.tools.javac.util.Name);
descriptor: (Lcom/sun/tools/javac/util/Name;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 name Lcom/sun/tools/javac/util/Name;
MethodParameters:
Name Flags
name
int putNameAndType(com.sun.tools.javac.code.Symbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol;)I
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
new com.sun.tools.javac.jvm.PoolConstant$NameAndType
dup
aload 1
getfield com.sun.tools.javac.code.Symbol.name:Lcom/sun/tools/javac/util/Name;
aload 0
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter.descriptorType:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
invokespecial com.sun.tools.javac.jvm.PoolConstant$NameAndType.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;)V
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 s Lcom/sun/tools/javac/code/Symbol;
MethodParameters:
Name Flags
s
int putPackage(com.sun.tools.javac.code.Symbol$PackageSymbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 pkg Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
MethodParameters:
Name Flags
pkg
int putModule(com.sun.tools.javac.code.Symbol$ModuleSymbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.writeIfNeeded:(Lcom/sun/tools/javac/jvm/PoolConstant;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 1 1 mod Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
MethodParameters:
Name Flags
mod
void enterInner(com.sun.tools.javac.code.Symbol$ClassSymbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
ifeq 2
1: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected intersection type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.complete:()V
3: aload 1
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
invokevirtual com.sun.tools.javac.code.Symbol.enclClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
ifnull 6
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.innerClasses:Ljava/util/LinkedHashSet;
aload 1
invokevirtual java.util.LinkedHashSet.contains:(Ljava/lang/Object;)Z
ifne 6
4: aload 0
aload 1
getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
invokevirtual com.sun.tools.javac.code.Symbol.enclClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
invokevirtual com.sun.tools.javac.jvm.PoolWriter.enterInner:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
5: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.innerClasses:Ljava/util/LinkedHashSet;
aload 1
invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
pop
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 7 1 c Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
MethodParameters:
Name Flags
c
private com.sun.tools.javac.code.Type descriptorType(com.sun.tools.javac.code.Symbol);
descriptor: (Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.MTH:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpne 1
aload 1
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
invokevirtual com.sun.tools.javac.code.Symbol.externalType:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
invokevirtual com.sun.tools.javac.code.Symbol.erasure:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
StackMap locals:
StackMap stack: com.sun.tools.javac.code.Type
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 3 1 s Lcom/sun/tools/javac/code/Symbol;
MethodParameters:
Name Flags
s
private int makeBootstrapEntry(com.sun.tools.javac.jvm.PoolConstant$Dynamic);
descriptor: (Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
invokeinterface com.sun.tools.javac.jvm.PoolConstant$Dynamic.bsmKey:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic$BsmKey;
astore 2
start local 2 1: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.bootstrapMethods:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 3
start local 3 2: aload 3
ifnonnull 5
3: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.bootstrapMethods:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 3
4: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.bootstrapMethods:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: com.sun.tools.javac.jvm.PoolConstant$Dynamic$BsmKey java.lang.Integer
StackMap stack:
aload 3
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 6 1 dynamic Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic;
1 6 2 bsmKey Lcom/sun/tools/javac/jvm/PoolConstant$Dynamic$BsmKey;
2 6 3 index Ljava/lang/Integer;
MethodParameters:
Name Flags
dynamic
void writePool(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
getfield com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.overflowString:Ljava/lang/String;
ifnull 2
1: new com.sun.tools.javac.jvm.ClassWriter$StringOverflow
dup
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
getfield com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.overflowString:Ljava/lang/String;
invokespecial com.sun.tools.javac.jvm.ClassWriter$StringOverflow.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.javac.jvm.PoolWriter.size:()I
istore 2
start local 2 3: iload 2
ldc 65535
if_icmple 5
4: new com.sun.tools.javac.jvm.ClassWriter$PoolOverflow
dup
invokespecial com.sun.tools.javac.jvm.ClassWriter$PoolOverflow.<init>:()V
athrow
5: StackMap locals: int
StackMap stack:
aload 1
iload 2
bipush 8
ishr
invokevirtual java.io.OutputStream.write:(I)V
6: aload 1
iload 2
invokevirtual java.io.OutputStream.write:(I)V
7: aload 1
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
getfield com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.poolbuf:Lcom/sun/tools/javac/util/ByteBuffer;
getfield com.sun.tools.javac.util.ByteBuffer.elems:[B
iconst_0
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
getfield com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.poolbuf:Lcom/sun/tools/javac/util/ByteBuffer;
getfield com.sun.tools.javac.util.ByteBuffer.length:I
invokevirtual java.io.OutputStream.write:([BII)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 9 1 out Ljava/io/OutputStream;
3 9 2 size I
Exceptions:
throws java.io.IOException, com.sun.tools.javac.jvm.ClassWriter$PoolOverflow
MethodParameters:
Name Flags
out
int size();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
getfield com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.currentIndex:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
private com.sun.tools.javac.util.Name typeSig(com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/Name;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.reset:()V
1: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
aload 1
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.assembleSig:(Lcom/sun/tools/javac/code/Type;)V
2: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.toName:()Lcom/sun/tools/javac/util/Name;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 3 1 type Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
type
private com.sun.tools.javac.util.Name classSig(com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/Name;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.reset:()V
1: aload 1
invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
astore 2
start local 2 2: aload 2
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifeq 4
3: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
aload 2
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.assembleParamsSig:(Lcom/sun/tools/javac/util/List;)V
4: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
aload 1
invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.assembleSig:(Lcom/sun/tools/javac/code/Type;)V
5: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.types:Lcom/sun/tools/javac/code/Types;
aload 1
invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: com.sun.tools.javac.jvm.PoolWriter com.sun.tools.javac.code.Type com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 3
start local 3 7: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
aload 3
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.assembleSig:(Lcom/sun/tools/javac/code/Type;)V
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.signatureGen:Lcom/sun/tools/javac/jvm/PoolWriter$SharedSignatureGenerator;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator.toName:()Lcom/sun/tools/javac/util/Name;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
0 10 1 t Lcom/sun/tools/javac/code/Type;
2 10 2 typarams Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
7 8 3 i Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
t
void reset();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.innerClasses:Ljava/util/LinkedHashSet;
invokevirtual java.util.LinkedHashSet.clear:()V
1: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.bootstrapMethods:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: aload 0
getfield com.sun.tools.javac.jvm.PoolWriter.pool:Lcom/sun/tools/javac/jvm/PoolWriter$WriteablePoolHelper;
invokevirtual com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper.reset:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/jvm/PoolWriter;
}
SourceFile: "PoolWriter.java"
NestMembers:
com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper
InnerClasses:
public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
public PackageSymbol = com.sun.tools.javac.code.Symbol$PackageSymbol of com.sun.tools.javac.code.Symbol
public PoolOverflow = com.sun.tools.javac.jvm.ClassWriter$PoolOverflow of com.sun.tools.javac.jvm.ClassWriter
public StringOverflow = com.sun.tools.javac.jvm.ClassWriter$StringOverflow of com.sun.tools.javac.jvm.ClassWriter
public abstract Dynamic = com.sun.tools.javac.jvm.PoolConstant$Dynamic of com.sun.tools.javac.jvm.PoolConstant
public BsmKey = com.sun.tools.javac.jvm.PoolConstant$Dynamic$BsmKey of com.sun.tools.javac.jvm.PoolConstant$Dynamic
public abstract LoadableConstant = com.sun.tools.javac.jvm.PoolConstant$LoadableConstant of com.sun.tools.javac.jvm.PoolConstant
public final NameAndType = com.sun.tools.javac.jvm.PoolConstant$NameAndType of com.sun.tools.javac.jvm.PoolConstant
SharedSignatureGenerator = com.sun.tools.javac.jvm.PoolWriter$SharedSignatureGenerator of com.sun.tools.javac.jvm.PoolWriter
WriteablePoolHelper = com.sun.tools.javac.jvm.PoolWriter$WriteablePoolHelper of com.sun.tools.javac.jvm.PoolWriter