public class org.apache.xml.dtm.ref.DTMStringPool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.xml.dtm.ref.DTMStringPool
  super_class: java.lang.Object
{
  java.util.Vector m_intToString;
    descriptor: Ljava/util/Vector;
    flags: (0x0000) 

  static final int HASHPRIME;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 101

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

  org.apache.xml.utils.IntVector m_hashChain;
    descriptor: Lorg/apache/xml/utils/IntVector;
    flags: (0x0000) 

  public static final int NULL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.xml.dtm.ref.DTMStringPool this
        start local 1 // int chainSize
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            bipush 101
            newarray 10
            putfield org.apache.xml.dtm.ref.DTMStringPool.m_hashStart:[I
         2: .line 72
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield org.apache.xml.dtm.ref.DTMStringPool.m_intToString:Ljava/util/Vector;
         3: .line 73
            aload 0 /* this */
            new org.apache.xml.utils.IntVector
            dup
            iload 1 /* chainSize */
            invokespecial org.apache.xml.utils.IntVector.<init>:(I)V
            putfield org.apache.xml.dtm.ref.DTMStringPool.m_hashChain:Lorg/apache/xml/utils/IntVector;
         4: .line 74
            aload 0 /* this */
            invokevirtual org.apache.xml.dtm.ref.DTMStringPool.removeAllElements:()V
         5: .line 77
            aload 0 /* this */
            ldc ""
            invokevirtual org.apache.xml.dtm.ref.DTMStringPool.stringToIndex:(Ljava/lang/String;)I
            pop
         6: .line 78
            return
        end local 1 // int chainSize
        end local 0 // org.apache.xml.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/xml/dtm/ref/DTMStringPool;
            0    7     1  chainSize  I
    MethodParameters:
           Name  Flags
      chainSize  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.xml.dtm.ref.DTMStringPool this
         0: .line 82
            aload 0 /* this */
            sipush 512
            invokespecial org.apache.xml.dtm.ref.DTMStringPool.<init>:(I)V
         1: .line 83
            return
        end local 0 // org.apache.xml.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/xml/dtm/ref/DTMStringPool;

  public void removeAllElements();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.xml.dtm.ref.DTMStringPool this
         0: .line 87
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_intToString:Ljava/util/Vector;
            invokevirtual java.util.Vector.removeAllElements:()V
         1: .line 88
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 89
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashStart:[I
            iload 1 /* i */
            iconst_m1
            iastore
         4: .line 88
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            bipush 101
            if_icmplt 3
        end local 1 // int i
         6: .line 90
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashChain:Lorg/apache/xml/utils/IntVector;
            invokevirtual org.apache.xml.utils.IntVector.removeAllElements:()V
         7: .line 91
            return
        end local 0 // org.apache.xml.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/xml/dtm/ref/DTMStringPool;
            2    6     1     i  I

  public java.lang.String indexToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.xml.dtm.ref.DTMStringPool this
        start local 1 // int i
         0: .line 100
            iload 1 /* i */
            iconst_m1
            if_icmpne 1
            aconst_null
            areturn
         1: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_intToString:Ljava/util/Vector;
            iload 1 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // int i
        end local 0 // org.apache.xml.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/xml/dtm/ref/DTMStringPool;
            0    2     1     i  I
    Exceptions:
      throws java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      i     

  public int stringToIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.xml.dtm.ref.DTMStringPool this
        start local 1 // java.lang.String s
         0: .line 107
            aload 1 /* s */
            ifnonnull 1
            iconst_m1
            ireturn
         1: .line 109
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.lang.String.hashCode:()I
            bipush 101
            irem
            istore 2 /* hashslot */
        start local 2 // int hashslot
         2: .line 110
            iload 2 /* hashslot */
            ifge 3
            iload 2 /* hashslot */
            ineg
            istore 2 /* hashslot */
         3: .line 113
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashStart:[I
            iload 2 /* hashslot */
            iaload
            istore 3 /* hashlast */
        start local 3 // int hashlast
         4: .line 114
            iload 3 /* hashlast */
            istore 4 /* hashcandidate */
        start local 4 // int hashcandidate
         5: .line 115
            goto 10
         6: .line 117
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_intToString:Ljava/util/Vector;
            iload 4 /* hashcandidate */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            aload 1 /* s */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 118
            iload 4 /* hashcandidate */
            ireturn
         8: .line 120
      StackMap locals:
      StackMap stack:
            iload 4 /* hashcandidate */
            istore 3 /* hashlast */
         9: .line 121
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashChain:Lorg/apache/xml/utils/IntVector;
            iload 4 /* hashcandidate */
            invokevirtual org.apache.xml.utils.IntVector.elementAt:(I)I
            istore 4 /* hashcandidate */
        10: .line 115
      StackMap locals:
      StackMap stack:
            iload 4 /* hashcandidate */
            iconst_m1
            if_icmpne 6
        11: .line 125
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_intToString:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            istore 5 /* newIndex */
        start local 5 // int newIndex
        12: .line 126
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_intToString:Ljava/util/Vector;
            aload 1 /* s */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        13: .line 128
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashChain:Lorg/apache/xml/utils/IntVector;
            iconst_m1
            invokevirtual org.apache.xml.utils.IntVector.addElement:(I)V
        14: .line 129
            iload 3 /* hashlast */
            iconst_m1
            if_icmpne 16
        15: .line 130
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashStart:[I
            iload 2 /* hashslot */
            iload 5 /* newIndex */
            iastore
            goto 17
        16: .line 132
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.xml.dtm.ref.DTMStringPool.m_hashChain:Lorg/apache/xml/utils/IntVector;
            iload 5 /* newIndex */
            iload 3 /* hashlast */
            invokevirtual org.apache.xml.utils.IntVector.setElementAt:(II)V
        17: .line 134
      StackMap locals:
      StackMap stack:
            iload 5 /* newIndex */
            ireturn
        end local 5 // int newIndex
        end local 4 // int hashcandidate
        end local 3 // int hashlast
        end local 2 // int hashslot
        end local 1 // java.lang.String s
        end local 0 // org.apache.xml.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lorg/apache/xml/dtm/ref/DTMStringPool;
            0   18     1              s  Ljava/lang/String;
            2   18     2       hashslot  I
            4   18     3       hashlast  I
            5   18     4  hashcandidate  I
           12   18     5       newIndex  I
    MethodParameters:
      Name  Flags
      s     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 143
            bipush 40
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 144
            ldc "Zero"
            aastore
            dup
            iconst_1
            ldc "One"
            aastore
            dup
            iconst_2
            ldc "Two"
            aastore
            dup
            iconst_3
            ldc "Three"
            aastore
            dup
            iconst_4
            ldc "Four"
            aastore
            dup
            iconst_5
            ldc "Five"
            aastore
            dup
            bipush 6
         2: .line 145
            ldc "Six"
            aastore
            dup
            bipush 7
            ldc "Seven"
            aastore
            dup
            bipush 8
            ldc "Eight"
            aastore
            dup
            bipush 9
            ldc "Nine"
            aastore
            dup
            bipush 10
            ldc "Ten"
            aastore
            dup
            bipush 11
         3: .line 146
            ldc "Eleven"
            aastore
            dup
            bipush 12
            ldc "Twelve"
            aastore
            dup
            bipush 13
            ldc "Thirteen"
            aastore
            dup
            bipush 14
            ldc "Fourteen"
            aastore
            dup
            bipush 15
            ldc "Fifteen"
            aastore
            dup
            bipush 16
         4: .line 147
            ldc "Sixteen"
            aastore
            dup
            bipush 17
            ldc "Seventeen"
            aastore
            dup
            bipush 18
            ldc "Eighteen"
            aastore
            dup
            bipush 19
            ldc "Nineteen"
            aastore
            dup
            bipush 20
            ldc "Twenty"
            aastore
            dup
            bipush 21
         5: .line 148
            ldc "Twenty-One"
            aastore
            dup
            bipush 22
            ldc "Twenty-Two"
            aastore
            dup
            bipush 23
            ldc "Twenty-Three"
            aastore
            dup
            bipush 24
            ldc "Twenty-Four"
            aastore
            dup
            bipush 25
         6: .line 149
            ldc "Twenty-Five"
            aastore
            dup
            bipush 26
            ldc "Twenty-Six"
            aastore
            dup
            bipush 27
            ldc "Twenty-Seven"
            aastore
            dup
            bipush 28
            ldc "Twenty-Eight"
            aastore
            dup
            bipush 29
         7: .line 150
            ldc "Twenty-Nine"
            aastore
            dup
            bipush 30
            ldc "Thirty"
            aastore
            dup
            bipush 31
            ldc "Thirty-One"
            aastore
            dup
            bipush 32
            ldc "Thirty-Two"
            aastore
            dup
            bipush 33
         8: .line 151
            ldc "Thirty-Three"
            aastore
            dup
            bipush 34
            ldc "Thirty-Four"
            aastore
            dup
            bipush 35
            ldc "Thirty-Five"
            aastore
            dup
            bipush 36
            ldc "Thirty-Six"
            aastore
            dup
            bipush 37
         9: .line 152
            ldc "Thirty-Seven"
            aastore
            dup
            bipush 38
            ldc "Thirty-Eight"
            aastore
            dup
            bipush 39
            ldc "Thirty-Nine"
            aastore
        10: .line 143
            astore 1 /* word */
        start local 1 // java.lang.String[] word
        11: .line 154
            new org.apache.xml.dtm.ref.DTMStringPool
            dup
            invokespecial org.apache.xml.dtm.ref.DTMStringPool.<init>:()V
            astore 2 /* pool */
        start local 2 // org.apache.xml.dtm.ref.DTMStringPool pool
        12: .line 156
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "If no complaints are printed below, we passed initial test."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 158
            iconst_0
            istore 3 /* pass */
        start local 3 // int pass
        14: goto 43
        15: .line 162
      StackMap locals: java.lang.String[] org.apache.xml.dtm.ref.DTMStringPool int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        16: goto 23
        17: .line 164
      StackMap locals: int
      StackMap stack:
            aload 2 /* pool */
            aload 1 /* word */
            iload 4 /* i */
            aaload
            invokevirtual org.apache.xml.dtm.ref.DTMStringPool.stringToIndex:(Ljava/lang/String;)I
            istore 5 /* j */
        start local 5 // int j
        18: .line 165
            iload 5 /* j */
            iload 4 /* i */
            if_icmpeq 22
        19: .line 166
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\tMismatch populating pool: assigned "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 167
            iload 5 /* j */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for create "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 166
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // int j
        22: .line 162
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 4 /* i */
            aload 1 /* word */
            arraylength
            if_icmplt 17
        24: .line 170
            iconst_0
            istore 4 /* i */
            goto 31
        25: .line 172
      StackMap locals:
      StackMap stack:
            aload 2 /* pool */
            aload 1 /* word */
            iload 4 /* i */
            aaload
            invokevirtual org.apache.xml.dtm.ref.DTMStringPool.stringToIndex:(Ljava/lang/String;)I
            istore 5 /* j */
        start local 5 // int j
        26: .line 173
            iload 5 /* j */
            iload 4 /* i */
            if_icmpeq 30
        27: .line 174
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\tMismatch in stringToIndex: returned "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        28: .line 175
            iload 5 /* j */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for lookup "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 174
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // int j
        30: .line 170
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 4 /* i */
            aload 1 /* word */
            arraylength
            if_icmplt 25
        32: .line 178
            iconst_0
            istore 4 /* i */
            goto 39
        33: .line 180
      StackMap locals:
      StackMap stack:
            aload 2 /* pool */
            iload 4 /* i */
            invokevirtual org.apache.xml.dtm.ref.DTMStringPool.indexToString:(I)Ljava/lang/String;
            astore 5 /* w */
        start local 5 // java.lang.String w
        34: .line 181
            aload 1 /* word */
            iload 4 /* i */
            aaload
            aload 5 /* w */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
        35: .line 182
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\tMismatch in indexToString: returned"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 183
            aload 5 /* w */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " for lookup "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 182
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.lang.String w
        38: .line 178
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 4 /* i */
            aload 1 /* word */
            arraylength
            if_icmplt 33
        40: .line 186
            aload 2 /* pool */
            invokevirtual org.apache.xml.dtm.ref.DTMStringPool.removeAllElements:()V
        41: .line 188
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\nPass "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* pass */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " complete\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // int i
        42: .line 158
            iinc 3 /* pass */ 1
      StackMap locals:
      StackMap stack:
        43: iload 3 /* pass */
            iconst_1
            if_icmple 15
        end local 3 // int pass
        44: .line 190
            return
        end local 2 // org.apache.xml.dtm.ref.DTMStringPool pool
        end local 1 // java.lang.String[] word
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   45     0  args  [Ljava/lang/String;
           11   45     1  word  [Ljava/lang/String;
           12   45     2  pool  Lorg/apache/xml/dtm/ref/DTMStringPool;
           14   44     3  pass  I
           16   42     4     i  I
           18   22     5     j  I
           26   30     5     j  I
           34   38     5     w  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "DTMStringPool.java"