public class com.sun.tools.javac.jvm.Pool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.jvm.Pool
  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

  int pp;
    descriptor: I
    flags: (0x0000) 

  java.lang.Object[] pool;
    descriptor: [Ljava/lang/Object;
    flags: (0x0000) 

  java.util.Map<java.lang.Object, java.lang.Integer> indices;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Integer;>;

  com.sun.tools.javac.code.Types types;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x0000) 

  public void <init>(int, java.lang.Object[], com.sun.tools.javac.code.Types);
    descriptor: (I[Ljava/lang/Object;Lcom/sun/tools/javac/code/Types;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.jvm.Pool this
        start local 1 // int pp
        start local 2 // java.lang.Object[] pool
        start local 3 // com.sun.tools.javac.code.Types types
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            iload 1 /* pp */
            putfield com.sun.tools.javac.jvm.Pool.pp:I
         2: .line 78
            aload 0 /* this */
            aload 2 /* pool */
            putfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
         3: .line 79
            aload 0 /* this */
            aload 3 /* types */
            putfield com.sun.tools.javac.jvm.Pool.types:Lcom/sun/tools/javac/code/Types;
         4: .line 80
            aload 0 /* this */
            new java.util.HashMap
            dup
            aload 2 /* pool */
            arraylength
            invokespecial java.util.HashMap.<init>:(I)V
            putfield com.sun.tools.javac.jvm.Pool.indices:Ljava/util/Map;
         5: .line 81
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 82
      StackMap locals: com.sun.tools.javac.jvm.Pool int java.lang.Object[] com.sun.tools.javac.code.Types int
      StackMap stack:
            aload 2 /* pool */
            iload 4 /* i */
            aaload
            ifnull 8
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.indices:Ljava/util/Map;
            aload 2 /* pool */
            iload 4 /* i */
            aaload
            iload 4 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 81
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 1 /* pp */
            if_icmplt 7
        end local 4 // int i
        10: .line 84
            return
        end local 3 // com.sun.tools.javac.code.Types types
        end local 2 // java.lang.Object[] pool
        end local 1 // int pp
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/sun/tools/javac/jvm/Pool;
            0   11     1     pp  I
            0   11     2   pool  [Ljava/lang/Object;
            0   11     3  types  Lcom/sun/tools/javac/code/Types;
            6   10     4      i  I
    MethodParameters:
       Name  Flags
      pp     
      pool   
      types  

  public void <init>(com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/code/Types;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Pool this
        start local 1 // com.sun.tools.javac.code.Types types
         0: .line 89
            aload 0 /* this */
            iconst_1
            bipush 64
            anewarray java.lang.Object
            aload 1 /* types */
            invokespecial com.sun.tools.javac.jvm.Pool.<init>:(I[Ljava/lang/Object;Lcom/sun/tools/javac/code/Types;)V
         1: .line 90
            return
        end local 1 // com.sun.tools.javac.code.Types types
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/jvm/Pool;
            0    2     1  types  Lcom/sun/tools/javac/code/Types;
    MethodParameters:
       Name  Flags
      types  

  public int numEntries();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.jvm.Pool this
         0: .line 95
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pp:I
            ireturn
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/jvm/Pool;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.jvm.Pool this
         0: .line 101
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.jvm.Pool.pp:I
         1: .line 102
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.indices:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 103
            return
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/jvm/Pool;

  public int put(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Pool this
        start local 1 // java.lang.Object value
         0: .line 110
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.sun.tools.javac.jvm.Pool.makePoolValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* value */
         1: .line 111
            aload 1 /* value */
            instanceof com.sun.tools.javac.code.Type$TypeVar
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         4: .line 112
            aload 1 /* value */
            instanceof com.sun.tools.javac.code.Types$UniqueType
            ifeq 7
         5: .line 113
            aload 1 /* value */
            checkcast com.sun.tools.javac.code.Types$UniqueType
            getfield com.sun.tools.javac.code.Types$UniqueType.type:Lcom/sun/tools/javac/code/Type;
            instanceof com.sun.tools.javac.code.Type$TypeVar
            ifeq 7
         6: .line 112
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         9: .line 114
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.indices:Ljava/util/Map;
            aload 1 /* value */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* index */
        start local 2 // java.lang.Integer index
        10: .line 115
            aload 2 /* index */
            ifnonnull 18
        11: .line 116
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pp:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* index */
        12: .line 117
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.indices:Ljava/util/Map;
            aload 1 /* value */
            aload 2 /* index */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 118
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pp:I
            invokestatic com.sun.tools.javac.util.ArrayUtils.ensureCapacity:([Ljava/lang/Object;I)[Ljava/lang/Object;
            putfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
        14: .line 119
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.jvm.Pool.pp:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.tools.javac.jvm.Pool.pp:I
            aload 1 /* value */
            aastore
        15: .line 120
            aload 1 /* value */
            instanceof java.lang.Long
            ifne 16
            aload 1 /* value */
            instanceof java.lang.Double
            ifeq 18
        16: .line 121
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pp:I
            invokestatic com.sun.tools.javac.util.ArrayUtils.ensureCapacity:([Ljava/lang/Object;I)[Ljava/lang/Object;
            putfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
        17: .line 122
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.pool:[Ljava/lang/Object;
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.jvm.Pool.pp:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.tools.javac.jvm.Pool.pp:I
            aconst_null
            aastore
        18: .line 125
      StackMap locals:
      StackMap stack:
            aload 2 /* index */
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.Integer index
        end local 1 // java.lang.Object value
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lcom/sun/tools/javac/jvm/Pool;
            0   19     1  value  Ljava/lang/Object;
           10   19     2  index  Ljava/lang/Integer;
    MethodParameters:
       Name  Flags
      value  

  java.lang.Object makePoolValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Pool this
        start local 1 // java.lang.Object o
         0: .line 129
            aload 1 /* o */
            instanceof com.sun.tools.javac.code.Symbol$DynamicMethodSymbol
            ifeq 2
         1: .line 130
            new com.sun.tools.javac.jvm.Pool$DynamicMethod
            dup
            aload 1 /* o */
            checkcast com.sun.tools.javac.code.Symbol$DynamicMethodSymbol
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.types:Lcom/sun/tools/javac/code/Types;
            invokespecial com.sun.tools.javac.jvm.Pool$DynamicMethod.<init>:(Lcom/sun/tools/javac/code/Symbol$DynamicMethodSymbol;Lcom/sun/tools/javac/code/Types;)V
            areturn
         2: .line 131
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof com.sun.tools.javac.code.Symbol$MethodSymbol
            ifeq 4
         3: .line 132
            new com.sun.tools.javac.jvm.Pool$Method
            dup
            aload 1 /* o */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.types:Lcom/sun/tools/javac/code/Types;
            invokespecial com.sun.tools.javac.jvm.Pool$Method.<init>:(Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Types;)V
            areturn
         4: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof com.sun.tools.javac.code.Symbol$VarSymbol
            ifeq 6
         5: .line 134
            new com.sun.tools.javac.jvm.Pool$Variable
            dup
            aload 1 /* o */
            checkcast com.sun.tools.javac.code.Symbol$VarSymbol
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.types:Lcom/sun/tools/javac/code/Types;
            invokespecial com.sun.tools.javac.jvm.Pool$Variable.<init>:(Lcom/sun/tools/javac/code/Symbol$VarSymbol;Lcom/sun/tools/javac/code/Types;)V
            areturn
         6: .line 135
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof com.sun.tools.javac.code.Type
            ifeq 11
         7: .line 136
            aload 1 /* o */
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         8: .line 140
            aload 2 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 10
         9: .line 141
            aload 2 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            areturn
        10: .line 143
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            new com.sun.tools.javac.code.Types$UniqueType
            dup
            aload 2 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.types:Lcom/sun/tools/javac/code/Types;
            invokespecial com.sun.tools.javac.code.Types$UniqueType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
            areturn
        end local 2 // com.sun.tools.javac.code.Type t
        11: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            areturn
        end local 1 // java.lang.Object o
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/tools/javac/jvm/Pool;
            0   12     1     o  Ljava/lang/Object;
            8   11     2     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      o     

  public int get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.Pool this
        start local 1 // java.lang.Object o
         0: .line 153
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.Pool.indices:Ljava/util/Map;
            aload 1 /* o */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* n */
        start local 2 // java.lang.Integer n
         1: .line 154
            aload 2 /* n */
            ifnonnull 2
            iconst_m1
            goto 3
      StackMap locals: java.lang.Integer
      StackMap stack:
         2: aload 2 /* n */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 2 // java.lang.Integer n
        end local 1 // java.lang.Object o
        end local 0 // com.sun.tools.javac.jvm.Pool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/jvm/Pool;
            0    4     1     o  Ljava/lang/Object;
            1    4     2     n  Ljava/lang/Integer;
    MethodParameters:
      Name  Flags
      o     
}
SourceFile: "Pool.java"
NestMembers:
  com.sun.tools.javac.jvm.Pool$DynamicMethod  com.sun.tools.javac.jvm.Pool$DynamicMethod$BootstrapMethodsKey  com.sun.tools.javac.jvm.Pool$DynamicMethod$BootstrapMethodsValue  com.sun.tools.javac.jvm.Pool$Method  com.sun.tools.javac.jvm.Pool$MethodHandle  com.sun.tools.javac.jvm.Pool$Variable
InnerClasses:
  public DynamicMethodSymbol = com.sun.tools.javac.code.Symbol$DynamicMethodSymbol of com.sun.tools.javac.code.Symbol
  public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol of com.sun.tools.javac.code.Symbol
  public VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
  public TypeVar = com.sun.tools.javac.code.Type$TypeVar of com.sun.tools.javac.code.Type
  public UniqueType = com.sun.tools.javac.code.Types$UniqueType of com.sun.tools.javac.code.Types
  DynamicMethod = com.sun.tools.javac.jvm.Pool$DynamicMethod of com.sun.tools.javac.jvm.Pool
  Method = com.sun.tools.javac.jvm.Pool$Method of com.sun.tools.javac.jvm.Pool
  public MethodHandle = com.sun.tools.javac.jvm.Pool$MethodHandle of com.sun.tools.javac.jvm.Pool
  Variable = com.sun.tools.javac.jvm.Pool$Variable of com.sun.tools.javac.jvm.Pool