public class org.hsqldb.map.HashIndex
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hsqldb.map.HashIndex
  super_class: java.lang.Object
{
  int[] hashTable;
    descriptor: [I
    flags: (0x0000) 

  int[] linkTable;
    descriptor: [I
    flags: (0x0000) 

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

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

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

  boolean fixedSize;
    descriptor: Z
    flags: (0x0000) 

  boolean modified;
    descriptor: Z
    flags: (0x0000) 

  public void <init>(int, int, boolean);
    descriptor: (IIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int hashTableSize
        start local 2 // int capacity
        start local 3 // boolean fixedSize
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            iconst_m1
            putfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
         2: .line 70
            iload 2 /* capacity */
            iload 1 /* hashTableSize */
            if_icmpge 4
         3: .line 71
            iload 1 /* hashTableSize */
            istore 2 /* capacity */
         4: .line 74
      StackMap locals: org.hsqldb.map.HashIndex int int int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* hashTableSize */
            iload 2 /* capacity */
            invokevirtual org.hsqldb.map.HashIndex.reset:(II)V
         5: .line 76
            aload 0 /* this */
            iload 3 /* fixedSize */
            putfield org.hsqldb.map.HashIndex.fixedSize:Z
         6: .line 77
            return
        end local 3 // boolean fixedSize
        end local 2 // int capacity
        end local 1 // int hashTableSize
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/hsqldb/map/HashIndex;
            0    7     1  hashTableSize  I
            0    7     2       capacity  I
            0    7     3      fixedSize  Z
    MethodParameters:
               Name  Flags
      hashTableSize  
      capacity       
      fixedSize      

  public void reset(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int hashTableSize
        start local 2 // int capacity
         0: .line 87
            iload 1 /* hashTableSize */
            newarray 10
            astore 3 /* newHT */
        start local 3 // int[] newHT
         1: .line 88
            iload 2 /* capacity */
            newarray 10
            astore 4 /* newLT */
        start local 4 // int[] newLT
         2: .line 91
            aload 0 /* this */
            aload 3 /* newHT */
            putfield org.hsqldb.map.HashIndex.hashTable:[I
         3: .line 92
            aload 0 /* this */
            aload 4 /* newLT */
            putfield org.hsqldb.map.HashIndex.linkTable:[I
         4: .line 94
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
         5: .line 95
            aload 0 /* this */
            invokevirtual org.hsqldb.map.HashIndex.resetTables:()V
         6: .line 96
            return
        end local 4 // int[] newLT
        end local 3 // int[] newHT
        end local 2 // int capacity
        end local 1 // int hashTableSize
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/hsqldb/map/HashIndex;
            0    7     1  hashTableSize  I
            0    7     2       capacity  I
            1    7     3          newHT  [I
            2    7     4          newLT  [I
    MethodParameters:
               Name  Flags
      hashTableSize  
      capacity       

  public void resetTables();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hsqldb.map.HashIndex this
         0: .line 100
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.map.HashIndex.newNodePointer:I
         1: .line 101
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.map.HashIndex.elementCount:I
         2: .line 102
            aload 0 /* this */
            iconst_m1
            putfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
         3: .line 103
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.map.HashIndex.modified:Z
         4: .line 104
            return
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hsqldb/map/HashIndex;

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.hsqldb.map.HashIndex this
         0: .line 111
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iconst_0
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            iconst_0
            invokestatic java.util.Arrays.fill:([IIII)V
         1: .line 112
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iconst_m1
            invokestatic java.util.Arrays.fill:([II)V
         2: .line 113
            aload 0 /* this */
            invokevirtual org.hsqldb.map.HashIndex.resetTables:()V
         3: .line 114
            return
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hsqldb/map/HashIndex;

  public int getHashIndex(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int hash
         0: .line 120
            iload 1 /* hash */
            ldc 2147483647
            iand
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            arraylength
            irem
            ireturn
        end local 1 // int hash
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/map/HashIndex;
            0    1     1  hash  I
    MethodParameters:
      Name  Flags
      hash  

  public int getLookup(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int hash
         0: .line 131
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.elementCount:I
            ifne 2
         1: .line 132
            iconst_m1
            ireturn
         2: .line 135
      StackMap locals:
      StackMap stack:
            iload 1 /* hash */
            ldc 2147483647
            iand
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            arraylength
            irem
            istore 2 /* index */
        start local 2 // int index
         3: .line 137
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iload 2 /* index */
            iaload
            ireturn
        end local 2 // int index
        end local 1 // int hash
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/hsqldb/map/HashIndex;
            0    4     1   hash  I
            3    4     2  index  I
    MethodParameters:
      Name  Flags
      hash  

  public int getNewNodePointer();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.map.HashIndex this
         0: .line 144
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            ireturn
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/map/HashIndex;

  public int getNextLookup(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int lookup
         0: .line 154
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 1 /* lookup */
            iaload
            ireturn
        end local 1 // int lookup
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/hsqldb/map/HashIndex;
            0    1     1  lookup  I
    MethodParameters:
        Name  Flags
      lookup  

  public int linkNode(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int index
        start local 2 // int lastLookup
         0: .line 167
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
            istore 3 /* lookup */
        start local 3 // int lookup
         1: .line 169
            iload 3 /* lookup */
            iconst_m1
            if_icmpne 4
         2: .line 170
            aload 0 /* this */
            dup
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            dup_x1
            iconst_1
            iadd
            putfield org.hsqldb.map.HashIndex.newNodePointer:I
            istore 3 /* lookup */
         3: .line 171
            goto 5
         4: .line 174
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 3 /* lookup */
            iaload
            putfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
         5: .line 180
      StackMap locals:
      StackMap stack:
            iload 2 /* lastLookup */
            iconst_m1
            if_icmpne 9
         6: .line 181
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iload 1 /* index */
            iaload
            istore 4 /* nextLookup */
        start local 4 // int nextLookup
         7: .line 182
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iload 1 /* index */
            iload 3 /* lookup */
            iastore
         8: .line 183
            goto 11
        end local 4 // int nextLookup
         9: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 2 /* lastLookup */
            iaload
            istore 4 /* nextLookup */
        start local 4 // int nextLookup
        10: .line 185
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 2 /* lastLookup */
            iload 3 /* lookup */
            iastore
        11: .line 188
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 3 /* lookup */
            iload 4 /* nextLookup */
            iastore
        12: .line 190
            aload 0 /* this */
            dup
            getfield org.hsqldb.map.HashIndex.elementCount:I
            iconst_1
            iadd
            putfield org.hsqldb.map.HashIndex.elementCount:I
        13: .line 192
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.map.HashIndex.modified:Z
        14: .line 194
            iload 3 /* lookup */
            ireturn
        end local 4 // int nextLookup
        end local 3 // int lookup
        end local 2 // int lastLookup
        end local 1 // int index
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/hsqldb/map/HashIndex;
            0   15     1       index  I
            0   15     2  lastLookup  I
            1   15     3      lookup  I
            7    9     4  nextLookup  I
           10   15     4  nextLookup  I
    MethodParameters:
            Name  Flags
      index       
      lastLookup  final

  public void unlinkNode(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int index
        start local 2 // int lastLookup
        start local 3 // int lookup
         0: .line 207
            iload 2 /* lastLookup */
            iconst_m1
            if_icmpne 3
         1: .line 208
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iload 1 /* index */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 3 /* lookup */
            iaload
            iastore
         2: .line 209
            goto 4
         3: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 2 /* lastLookup */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 3 /* lookup */
            iaload
            iastore
         4: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 3 /* lookup */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
            iastore
         5: .line 215
            aload 0 /* this */
            iload 3 /* lookup */
            putfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
         6: .line 217
            aload 0 /* this */
            dup
            getfield org.hsqldb.map.HashIndex.elementCount:I
            iconst_1
            isub
            putfield org.hsqldb.map.HashIndex.elementCount:I
         7: .line 219
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.elementCount:I
            ifne 10
         8: .line 220
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iconst_0
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            iconst_0
            invokestatic java.util.Arrays.fill:([IIII)V
         9: .line 221
            aload 0 /* this */
            invokevirtual org.hsqldb.map.HashIndex.resetTables:()V
        10: .line 223
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int lookup
        end local 2 // int lastLookup
        end local 1 // int index
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/hsqldb/map/HashIndex;
            0   11     1       index  I
            0   11     2  lastLookup  I
            0   11     3      lookup  I
    MethodParameters:
            Name  Flags
      index       
      lastLookup  
      lookup      

  public boolean removeEmptyNode(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.hsqldb.map.HashIndex this
        start local 1 // int lookup
         0: .line 236
            iconst_0
            istore 2 /* found */
        start local 2 // boolean found
         1: .line 237
            iconst_m1
            istore 3 /* lastLookup */
        start local 3 // int lastLookup
         2: .line 239
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
            istore 4 /* i */
        start local 4 // int i
         3: goto 12
         4: .line 241
      StackMap locals: int int int
      StackMap stack:
            iload 4 /* i */
            iload 1 /* lookup */
            if_icmpne 11
         5: .line 242
            iload 3 /* lastLookup */
            iconst_m1
            if_icmpne 8
         6: .line 243
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 1 /* lookup */
            iaload
            putfield org.hsqldb.map.HashIndex.reclaimedNodePointer:I
         7: .line 244
            goto 9
         8: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 3 /* lastLookup */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 1 /* lookup */
            iaload
            iastore
         9: .line 248
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* found */
        10: .line 250
            goto 13
        11: .line 240
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            istore 3 /* lastLookup */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 4 /* i */
            iaload
            istore 4 /* i */
        12: .line 239
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            ifge 4
        end local 4 // int i
        13: .line 254
      StackMap locals:
      StackMap stack:
            iload 2 /* found */
            ifne 15
        14: .line 255
            iconst_0
            ireturn
        15: .line 258
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        16: goto 20
        17: .line 259
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 4 /* i */
            iaload
            iload 1 /* lookup */
            if_icmple 19
        18: .line 260
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 4 /* i */
            dup2
            iaload
            iconst_1
            isub
            iastore
        19: .line 258
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            if_icmplt 17
        end local 4 // int i
        21: .line 264
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 1 /* lookup */
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            iload 1 /* lookup */
        22: .line 265
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            iload 1 /* lookup */
            isub
            iconst_1
            isub
        23: .line 264
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 267
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.linkTable:[I
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            iconst_1
            isub
            iconst_0
            iastore
        25: .line 269
            aload 0 /* this */
            dup
            getfield org.hsqldb.map.HashIndex.newNodePointer:I
            iconst_1
            isub
            putfield org.hsqldb.map.HashIndex.newNodePointer:I
        26: .line 271
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        27: goto 31
        28: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iload 4 /* i */
            iaload
            iload 1 /* lookup */
            if_icmple 30
        29: .line 273
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            iload 4 /* i */
            dup2
            iaload
            iconst_1
            isub
            iastore
        30: .line 271
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 4 /* i */
            aload 0 /* this */
            getfield org.hsqldb.map.HashIndex.hashTable:[I
            arraylength
            if_icmplt 28
        end local 4 // int i
        32: .line 277
            iconst_1
            ireturn
        end local 3 // int lastLookup
        end local 2 // boolean found
        end local 1 // int lookup
        end local 0 // org.hsqldb.map.HashIndex this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   33     0        this  Lorg/hsqldb/map/HashIndex;
            0   33     1      lookup  I
            1   33     2       found  Z
            2   33     3  lastLookup  I
            3   13     4           i  I
           16   21     4           i  I
           27   32     4           i  I
    MethodParameters:
        Name  Flags
      lookup  
}
SourceFile: "HashIndex.java"