public class com.sun.tools.javac.util.IntHashTable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.util.IntHashTable
  super_class: java.lang.Object
{
  private static final int DEFAULT_INITIAL_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  protected java.lang.Object[] objs;
    descriptor: [Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED

  protected int[] ints;
    descriptor: [I
    flags: (0x0004) ACC_PROTECTED

  protected int mask;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int num_bindings;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  private static final java.lang.Object DELETED;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 43
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.util.IntHashTable this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            bipush 64
            anewarray java.lang.Object
            putfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
         2: .line 52
            aload 0 /* this */
            bipush 64
            newarray 10
            putfield com.sun.tools.javac.util.IntHashTable.ints:[I
         3: .line 53
            aload 0 /* this */
            bipush 63
            putfield com.sun.tools.javac.util.IntHashTable.mask:I
         4: .line 54
            return
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/util/IntHashTable;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // int capacity
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            iconst_4
            istore 2 /* log2Size */
        start local 2 // int log2Size
         2: .line 62
            goto 4
         3: .line 63
      StackMap locals: com.sun.tools.javac.util.IntHashTable int int
      StackMap stack:
            iinc 2 /* log2Size */ 1
         4: .line 62
      StackMap locals:
      StackMap stack:
            iload 1 /* capacity */
            iconst_1
            iload 2 /* log2Size */
            ishl
            if_icmpgt 3
         5: .line 65
            iconst_1
            iload 2 /* log2Size */
            ishl
            istore 1 /* capacity */
         6: .line 66
            aload 0 /* this */
            iload 1 /* capacity */
            anewarray java.lang.Object
            putfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
         7: .line 67
            aload 0 /* this */
            iload 1 /* capacity */
            newarray 10
            putfield com.sun.tools.javac.util.IntHashTable.ints:[I
         8: .line 68
            aload 0 /* this */
            iload 1 /* capacity */
            iconst_1
            isub
            putfield com.sun.tools.javac.util.IntHashTable.mask:I
         9: .line 69
            return
        end local 2 // int log2Size
        end local 1 // int capacity
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/sun/tools/javac/util/IntHashTable;
            0   10     1  capacity  I
            2   10     2  log2Size  I
    MethodParameters:
          Name  Flags
      capacity  

  public int hash(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // java.lang.Object key
         0: .line 78
            aload 1 /* key */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/IntHashTable;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public int lookup(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // java.lang.Object key
        start local 2 // int hash
         0: .line 91
            iload 2 /* hash */
            iload 2 /* hash */
            bipush 15
            iushr
            ixor
            istore 4 /* hash1 */
        start local 4 // int hash1
         1: .line 92
            iload 2 /* hash */
            iload 2 /* hash */
            bipush 6
            ishl
            ixor
            iconst_1
            ior
            istore 5 /* hash2 */
        start local 5 // int hash2
         2: .line 93
            iconst_m1
            istore 6 /* deleted */
        start local 6 // int deleted
         3: .line 94
            iload 4 /* hash1 */
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.mask:I
            iand
            istore 7 /* i */
        start local 7 // int i
         4: .line 95
      StackMap locals: com.sun.tools.javac.util.IntHashTable java.lang.Object int top int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 7 /* i */
            aaload
            astore 3 /* node */
        start local 3 // java.lang.Object node
         5: .line 96
            aload 3 /* node */
            aload 1 /* key */
            if_acmpne 7
         6: .line 97
            iload 7 /* i */
            ireturn
         7: .line 98
      StackMap locals: com.sun.tools.javac.util.IntHashTable java.lang.Object int java.lang.Object int int int int
      StackMap stack:
            aload 3 /* node */
            ifnonnull 11
         8: .line 99
            iload 6 /* deleted */
            iflt 9
            iload 6 /* deleted */
            goto 10
      StackMap locals:
      StackMap stack:
         9: iload 7 /* i */
      StackMap locals:
      StackMap stack: int
        10: ireturn
        11: .line 100
      StackMap locals:
      StackMap stack:
            aload 3 /* node */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            if_acmpne 13
            iload 6 /* deleted */
            ifge 13
        12: .line 101
            iload 7 /* i */
            istore 6 /* deleted */
        13: .line 94
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iload 5 /* hash2 */
            iadd
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.mask:I
            iand
            istore 7 /* i */
        end local 3 // java.lang.Object node
        14: goto 4
        end local 7 // int i
        end local 6 // int deleted
        end local 5 // int hash2
        end local 4 // int hash1
        end local 2 // int hash
        end local 1 // java.lang.Object key
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lcom/sun/tools/javac/util/IntHashTable;
            0   15     1      key  Ljava/lang/Object;
            0   15     2     hash  I
            5   14     3     node  Ljava/lang/Object;
            1   15     4    hash1  I
            2   15     5    hash2  I
            3   15     6  deleted  I
            4   15     7        i  I
    MethodParameters:
      Name  Flags
      key   
      hash  

  public int lookup(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // java.lang.Object key
         0: .line 113
            aload 0 /* this */
            aload 1 /* key */
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual com.sun.tools.javac.util.IntHashTable.hash:(Ljava/lang/Object;)I
            invokevirtual com.sun.tools.javac.util.IntHashTable.lookup:(Ljava/lang/Object;I)I
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/IntHashTable;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public int getFromIndex(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // int index
         0: .line 124
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 1 /* index */
            aaload
            astore 2 /* node */
        start local 2 // java.lang.Object node
         1: .line 125
            aload 2 /* node */
            ifnull 2
            aload 2 /* node */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            if_acmpne 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_m1
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.ints:[I
            iload 1 /* index */
            iaload
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // java.lang.Object node
        end local 1 // int index
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/sun/tools/javac/util/IntHashTable;
            0    5     1  index  I
            1    5     2   node  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      index  

  public int putAtIndex(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // java.lang.Object key
        start local 2 // int value
        start local 3 // int index
         0: .line 139
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 3 /* index */
            aaload
            astore 4 /* old */
        start local 4 // java.lang.Object old
         1: .line 140
            aload 4 /* old */
            ifnull 2
            aload 4 /* old */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            if_acmpne 9
         2: .line 141
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 3 /* index */
            aload 1 /* key */
            aastore
         3: .line 142
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.ints:[I
            iload 3 /* index */
            iload 2 /* value */
            iastore
         4: .line 143
            aload 4 /* old */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            if_acmpeq 6
         5: .line 144
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.util.IntHashTable.num_bindings:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.util.IntHashTable.num_bindings:I
         6: .line 145
      StackMap locals:
      StackMap stack:
            iconst_3
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.num_bindings:I
            imul
            iconst_2
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            arraylength
            imul
            if_icmplt 8
         7: .line 146
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.util.IntHashTable.rehash:()V
         8: .line 147
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
         9: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.ints:[I
            iload 3 /* index */
            iaload
            istore 5 /* oldValue */
        start local 5 // int oldValue
        10: .line 150
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.ints:[I
            iload 3 /* index */
            iload 2 /* value */
            iastore
        11: .line 151
            iload 5 /* oldValue */
            ireturn
        end local 5 // int oldValue
        end local 4 // java.lang.Object old
        end local 3 // int index
        end local 2 // int value
        end local 1 // java.lang.Object key
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/sun/tools/javac/util/IntHashTable;
            0   12     1       key  Ljava/lang/Object;
            0   12     2     value  I
            0   12     3     index  I
            1   12     4       old  Ljava/lang/Object;
           10   12     5  oldValue  I
    MethodParameters:
       Name  Flags
      key    
      value  
      index  

  public int remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.util.IntHashTable this
        start local 1 // java.lang.Object key
         0: .line 156
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual com.sun.tools.javac.util.IntHashTable.lookup:(Ljava/lang/Object;)I
            istore 2 /* index */
        start local 2 // int index
         1: .line 157
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 2 /* index */
            aaload
            astore 3 /* old */
        start local 3 // java.lang.Object old
         2: .line 158
            aload 3 /* old */
            ifnull 3
            aload 3 /* old */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            if_acmpne 4
         3: .line 159
      StackMap locals: int java.lang.Object
      StackMap stack:
            iconst_m1
            ireturn
         4: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 2 /* index */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            aastore
         5: .line 161
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.ints:[I
            iload 2 /* index */
            iaload
            ireturn
        end local 3 // java.lang.Object old
        end local 2 // int index
        end local 1 // java.lang.Object key
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/tools/javac/util/IntHashTable;
            0    6     1    key  Ljava/lang/Object;
            1    6     2  index  I
            2    6     3    old  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  protected void rehash();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // com.sun.tools.javac.util.IntHashTable this
         0: .line 170
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            astore 1 /* oldObjsTable */
        start local 1 // java.lang.Object[] oldObjsTable
         1: .line 171
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.ints:[I
            astore 2 /* oldIntsTable */
        start local 2 // int[] oldIntsTable
         2: .line 172
            aload 1 /* oldObjsTable */
            arraylength
            istore 3 /* oldCapacity */
        start local 3 // int oldCapacity
         3: .line 173
            iload 3 /* oldCapacity */
            iconst_1
            ishl
            istore 4 /* newCapacity */
        start local 4 // int newCapacity
         4: .line 174
            iload 4 /* newCapacity */
            anewarray java.lang.Object
            astore 5 /* newObjTable */
        start local 5 // java.lang.Object[] newObjTable
         5: .line 175
            iload 4 /* newCapacity */
            newarray 10
            astore 6 /* newIntTable */
        start local 6 // int[] newIntTable
         6: .line 176
            iload 4 /* newCapacity */
            iconst_1
            isub
            istore 7 /* newMask */
        start local 7 // int newMask
         7: .line 177
            aload 0 /* this */
            aload 5 /* newObjTable */
            putfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
         8: .line 178
            aload 0 /* this */
            aload 6 /* newIntTable */
            putfield com.sun.tools.javac.util.IntHashTable.ints:[I
         9: .line 179
            aload 0 /* this */
            iload 7 /* newMask */
            putfield com.sun.tools.javac.util.IntHashTable.mask:I
        10: .line 180
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.util.IntHashTable.num_bindings:I
        11: .line 182
            aload 2 /* oldIntsTable */
            arraylength
            istore 9 /* i */
        start local 9 // int i
        12: goto 16
        13: .line 183
      StackMap locals: com.sun.tools.javac.util.IntHashTable java.lang.Object[] int[] int int java.lang.Object[] int[] int top int
      StackMap stack:
            aload 1 /* oldObjsTable */
            iload 9 /* i */
            aaload
            astore 8 /* key */
        start local 8 // java.lang.Object key
        14: .line 184
            aload 8 /* key */
            ifnull 16
            aload 8 /* key */
            getstatic com.sun.tools.javac.util.IntHashTable.DELETED:Ljava/lang/Object;
            if_acmpeq 16
        15: .line 185
            aload 0 /* this */
            aload 8 /* key */
            aload 2 /* oldIntsTable */
            iload 9 /* i */
            iaload
            aload 0 /* this */
            aload 8 /* key */
            aload 0 /* this */
            aload 8 /* key */
            invokevirtual com.sun.tools.javac.util.IntHashTable.hash:(Ljava/lang/Object;)I
            invokevirtual com.sun.tools.javac.util.IntHashTable.lookup:(Ljava/lang/Object;I)I
            invokevirtual com.sun.tools.javac.util.IntHashTable.putAtIndex:(Ljava/lang/Object;II)I
            pop
        end local 8 // java.lang.Object key
        16: .line 182
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ -1
            iload 9 /* i */
            ifge 13
        end local 9 // int i
        17: .line 187
            return
        end local 7 // int newMask
        end local 6 // int[] newIntTable
        end local 5 // java.lang.Object[] newObjTable
        end local 4 // int newCapacity
        end local 3 // int oldCapacity
        end local 2 // int[] oldIntsTable
        end local 1 // java.lang.Object[] oldObjsTable
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lcom/sun/tools/javac/util/IntHashTable;
            1   18     1  oldObjsTable  [Ljava/lang/Object;
            2   18     2  oldIntsTable  [I
            3   18     3   oldCapacity  I
            4   18     4   newCapacity  I
            5   18     5   newObjTable  [Ljava/lang/Object;
            6   18     6   newIntTable  [I
            7   18     7       newMask  I
           14   16     8           key  Ljava/lang/Object;
           12   17     9             i  I

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.IntHashTable this
         0: .line 193
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            arraylength
            istore 1 /* i */
        start local 1 // int i
         1: goto 3
         2: .line 194
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.util.IntHashTable.objs:[Ljava/lang/Object;
            iload 1 /* i */
            aconst_null
            aastore
         3: .line 193
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ -1
            iload 1 /* i */
            ifge 2
        end local 1 // int i
         4: .line 196
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.util.IntHashTable.num_bindings:I
         5: .line 197
            return
        end local 0 // com.sun.tools.javac.util.IntHashTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/util/IntHashTable;
            1    4     1     i  I
}
SourceFile: "IntHashTable.java"