public class com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool
  super_class: java.lang.Object
{
  java.util.List<java.lang.String> m_intToString;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/String;>;

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

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

  com.sun.org.apache.xml.internal.utils.IntVector m_hashChain;
    descriptor: Lcom/sun/org/apache/xml/internal/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 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
        start local 1 // int chainSize
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            bipush 101
            newarray 10
            putfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashStart:[I
         2: .line 73
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_intToString:Ljava/util/List;
         3: .line 74
            aload 0 /* this */
            new com.sun.org.apache.xml.internal.utils.IntVector
            dup
            iload 1 /* chainSize */
            invokespecial com.sun.org.apache.xml.internal.utils.IntVector.<init>:(I)V
            putfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashChain:Lcom/sun/org/apache/xml/internal/utils/IntVector;
         4: .line 75
            aload 0 /* this */
            invokevirtual com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.removeAllElements:()V
         5: .line 78
            aload 0 /* this */
            ldc ""
            invokevirtual com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.stringToIndex:(Ljava/lang/String;)I
            pop
         6: .line 79
            return
        end local 1 // int chainSize
        end local 0 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/sun/org/apache/xml/internal/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 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
         0: .line 83
            aload 0 /* this */
            sipush 512
            invokespecial com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.<init>:(I)V
         1: .line 84
            return
        end local 0 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/org/apache/xml/internal/dtm/ref/DTMStringPool;

  public void removeAllElements();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
         0: .line 88
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_intToString:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 89
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 90
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashStart:[I
            iload 1 /* i */
            iconst_m1
            iastore
         4: .line 89
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            bipush 101
            if_icmplt 3
        end local 1 // int i
         6: .line 91
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashChain:Lcom/sun/org/apache/xml/internal/utils/IntVector;
            invokevirtual com.sun.org.apache.xml.internal.utils.IntVector.removeAllElements:()V
         7: .line 92
            return
        end local 0 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/org/apache/xml/internal/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 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
        start local 1 // int i
         0: .line 101
            iload 1 /* i */
            iconst_m1
            if_icmpne 1
            aconst_null
            areturn
         1: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_intToString:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // int i
        end local 0 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/org/apache/xml/internal/dtm/ref/DTMStringPool;
            0    2     1     i  I
    Exceptions:
      throws java.lang.IndexOutOfBoundsException
    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 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
        start local 1 // java.lang.String s
         0: .line 108
            aload 1 /* s */
            ifnonnull 1
            iconst_m1
            ireturn
         1: .line 110
      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 111
            iload 2 /* hashslot */
            ifge 3
            iload 2 /* hashslot */
            ineg
            istore 2 /* hashslot */
         3: .line 114
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashStart:[I
            iload 2 /* hashslot */
            iaload
            istore 3 /* hashlast */
        start local 3 // int hashlast
         4: .line 115
            iload 3 /* hashlast */
            istore 4 /* hashcandidate */
        start local 4 // int hashcandidate
         5: .line 116
            goto 10
         6: .line 118
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_intToString:Ljava/util/List;
            iload 4 /* hashcandidate */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 119
            iload 4 /* hashcandidate */
            ireturn
         8: .line 121
      StackMap locals:
      StackMap stack:
            iload 4 /* hashcandidate */
            istore 3 /* hashlast */
         9: .line 122
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashChain:Lcom/sun/org/apache/xml/internal/utils/IntVector;
            iload 4 /* hashcandidate */
            invokevirtual com.sun.org.apache.xml.internal.utils.IntVector.elementAt:(I)I
            istore 4 /* hashcandidate */
        10: .line 116
      StackMap locals:
      StackMap stack:
            iload 4 /* hashcandidate */
            iconst_m1
            if_icmpne 6
        11: .line 126
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_intToString:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 5 /* newIndex */
        start local 5 // int newIndex
        12: .line 127
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_intToString:Ljava/util/List;
            aload 1 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 129
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashChain:Lcom/sun/org/apache/xml/internal/utils/IntVector;
            iconst_m1
            invokevirtual com.sun.org.apache.xml.internal.utils.IntVector.addElement:(I)V
        14: .line 130
            iload 3 /* hashlast */
            iconst_m1
            if_icmpne 16
        15: .line 131
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashStart:[I
            iload 2 /* hashslot */
            iload 5 /* newIndex */
            iastore
            goto 17
        16: .line 133
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.m_hashChain:Lcom/sun/org/apache/xml/internal/utils/IntVector;
            iload 5 /* newIndex */
            iload 3 /* hashlast */
            invokevirtual com.sun.org.apache.xml.internal.utils.IntVector.setElementAt:(II)V
        17: .line 135
      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 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/sun/org/apache/xml/internal/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 144
            bipush 40
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 145
            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 146
            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 147
            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 148
            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 149
            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 150
            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 151
            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 152
            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 153
            ldc "Thirty-Seven"
            aastore
            dup
            bipush 38
            ldc "Thirty-Eight"
            aastore
            dup
            bipush 39
            ldc "Thirty-Nine"
            aastore
        10: .line 144
            astore 1 /* word */
        start local 1 // java.lang.String[] word
        11: .line 155
            new com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool
            dup
            invokespecial com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.<init>:()V
            astore 2 /* pool */
        start local 2 // com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool pool
        12: .line 157
            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 159
            iconst_0
            istore 3 /* pass */
        start local 3 // int pass
        14: goto 43
        15: .line 163
      StackMap locals: java.lang.String[] com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        16: goto 23
        17: .line 165
      StackMap locals: int
      StackMap stack:
            aload 2 /* pool */
            aload 1 /* word */
            iload 4 /* i */
            aaload
            invokevirtual com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.stringToIndex:(Ljava/lang/String;)I
            istore 5 /* j */
        start local 5 // int j
        18: .line 166
            iload 5 /* j */
            iload 4 /* i */
            if_icmpeq 22
        19: .line 167
            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 168
            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 167
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // int j
        22: .line 163
      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 171
            iconst_0
            istore 4 /* i */
            goto 31
        25: .line 173
      StackMap locals:
      StackMap stack:
            aload 2 /* pool */
            aload 1 /* word */
            iload 4 /* i */
            aaload
            invokevirtual com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.stringToIndex:(Ljava/lang/String;)I
            istore 5 /* j */
        start local 5 // int j
        26: .line 174
            iload 5 /* j */
            iload 4 /* i */
            if_icmpeq 30
        27: .line 175
            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 176
            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 175
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // int j
        30: .line 171
      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 179
            iconst_0
            istore 4 /* i */
            goto 39
        33: .line 181
      StackMap locals:
      StackMap stack:
            aload 2 /* pool */
            iload 4 /* i */
            invokevirtual com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.indexToString:(I)Ljava/lang/String;
            astore 5 /* w */
        start local 5 // java.lang.String w
        34: .line 182
            aload 1 /* word */
            iload 4 /* i */
            aaload
            aload 5 /* w */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
        35: .line 183
            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 184
            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 183
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.lang.String w
        38: .line 179
      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 187
            aload 2 /* pool */
            invokevirtual com.sun.org.apache.xml.internal.dtm.ref.DTMStringPool.removeAllElements:()V
        41: .line 189
            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 159
            iinc 3 /* pass */ 1
      StackMap locals:
      StackMap stack:
        43: iload 3 /* pass */
            iconst_1
            if_icmple 15
        end local 3 // int pass
        44: .line 191
            return
        end local 2 // com.sun.org.apache.xml.internal.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  Lcom/sun/org/apache/xml/internal/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"