public class org.eclipse.jdt.internal.core.index.DiskIndex
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.index.DiskIndex
  super_class: java.lang.Object
{
  org.eclipse.jdt.internal.core.index.IndexLocation indexLocation;
    descriptor: Lorg/eclipse/jdt/internal/core/index/IndexLocation;
    flags: (0x0000) 

  private int headerInfoOffset;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int numberOfChunks;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int sizeOfLastChunk;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int[] chunkOffsets;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int documentReferenceSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int startOfCategoryTables;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues categoryOffsets;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues categoryEnds;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
    flags: (0x0002) ACC_PRIVATE

  private int cacheUserCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[][] cachedChunks;
    descriptor: [[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.internal.compiler.util.HashtableOfObject categoryTables;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
    flags: (0x0002) ACC_PRIVATE

  private char[] cachedCategoryName;
    descriptor: [C
    flags: (0x0002) ACC_PRIVATE

  private static final int DEFAULT_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  private static int BUFFER_READ_SIZE;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final int BUFFER_WRITE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  private byte[] streamBuffer;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int bufferIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int bufferEnd;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int streamEnd;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  char separator;
    descriptor: C
    flags: (0x0000) 

  public static final java.lang.String SIGNATURE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "INDEX VERSION 1.131"

  private static final char[] SIGNATURE_CHARS;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static boolean DEBUG;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static final int RE_INDEXED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int DELETED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  private static final int CHUNK_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final org.eclipse.jdt.internal.compiler.util.SimpleSetOfCharArray INTERNED_CATEGORY_NAMES;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/SimpleSetOfCharArray;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String TMP_EXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".tmp"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 46
            sipush 2048
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
         1: .line 54
            ldc "INDEX VERSION 1.131"
            invokevirtual java.lang.String.toCharArray:()[C
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.SIGNATURE_CHARS:[C
         2: .line 55
            iconst_0
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
         3: .line 62
            new org.eclipse.jdt.internal.compiler.util.SimpleSetOfCharArray
            dup
            bipush 20
            invokespecial org.eclipse.jdt.internal.compiler.util.SimpleSetOfCharArray.<init>:(I)V
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.INTERNED_CATEGORY_NAMES:Lorg/eclipse/jdt/internal/compiler/util/SimpleSetOfCharArray;
         4: .line 63
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            bipush 47
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.separator:C
         2: .line 91
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
         3: .line 92
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
         4: .line 93
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
         5: .line 94
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
         6: .line 95
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.documentReferenceSize:I
         7: .line 96
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cacheUserCount:I
         8: .line 97
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
         9: .line 98
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
        10: .line 99
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedCategoryName:[C
        11: .line 100
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
        12: .line 101
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryEnds:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
        13: .line 102
            return
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;

  void <init>(org.eclipse.jdt.internal.core.index.IndexLocation);
    descriptor: (Lorg/eclipse/jdt/internal/core/index/IndexLocation;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // org.eclipse.jdt.internal.core.index.IndexLocation location
         0: .line 104
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.index.DiskIndex.<init>:()V
         1: .line 105
            aload 1 /* location */
            ifnonnull 3
         2: .line 106
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         3: .line 108
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.core.index.IndexLocation
      StackMap stack:
            aload 0 /* this */
            aload 1 /* location */
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
         4: .line 109
            return
        end local 1 // org.eclipse.jdt.internal.core.index.IndexLocation location
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0    5     1  location  Lorg/eclipse/jdt/internal/core/index/IndexLocation;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      location  

  org.eclipse.jdt.internal.compiler.util.SimpleSet addDocumentNames(java.lang.String, org.eclipse.jdt.internal.core.index.MemoryIndex);
    descriptor: (Ljava/lang/String;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;)Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.lang.String substring
        start local 2 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
         0: .line 112
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readAllDocumentNames:()[Ljava/lang/String;
            astore 3 /* docNames */
        start local 3 // java.lang.String[] docNames
         1: .line 113
            new org.eclipse.jdt.internal.compiler.util.SimpleSet
            dup
            aload 3 /* docNames */
            arraylength
            invokespecial org.eclipse.jdt.internal.compiler.util.SimpleSet.<init>:(I)V
            astore 4 /* results */
        start local 4 // org.eclipse.jdt.internal.compiler.util.SimpleSet results
         2: .line 114
            aload 1 /* substring */
            ifnonnull 21
         3: .line 115
            aload 2 /* memoryIndex */
            ifnonnull 11
         4: .line 116
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: aload 3 /* docNames */
            arraylength
            istore 6 /* l */
        start local 6 // int l
         6: goto 9
         7: .line 117
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String org.eclipse.jdt.internal.core.index.MemoryIndex java.lang.String[] org.eclipse.jdt.internal.compiler.util.SimpleSet int int
      StackMap stack:
            aload 4 /* results */
            aload 3 /* docNames */
            iload 5 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.add:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 116
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 7
        end local 6 // int l
        end local 5 // int i
        10: .line 118
            goto 39
        11: .line 119
      StackMap locals:
      StackMap stack:
            aload 2 /* memoryIndex */
            getfield org.eclipse.jdt.internal.core.index.MemoryIndex.docsToReferences:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            astore 5 /* docsToRefs */
        start local 5 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable docsToRefs
        12: .line 120
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: aload 3 /* docNames */
            arraylength
            istore 7 /* l */
        start local 7 // int l
        14: goto 19
        15: .line 121
      StackMap locals: org.eclipse.jdt.internal.compiler.util.SimpleLookupTable int int
      StackMap stack:
            aload 3 /* docNames */
            iload 6 /* i */
            aaload
            astore 8 /* docName */
        start local 8 // java.lang.String docName
        16: .line 122
            aload 5 /* docsToRefs */
            aload 8 /* docName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.containsKey:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 123
            aload 4 /* results */
            aload 8 /* docName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.add:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.String docName
        18: .line 120
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 7 /* l */
            if_icmplt 15
        end local 7 // int l
        end local 6 // int i
        end local 5 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable docsToRefs
        20: .line 126
            goto 39
        21: .line 127
      StackMap locals:
      StackMap stack:
            aload 2 /* memoryIndex */
            ifnonnull 30
        22: .line 128
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        23: aload 3 /* docNames */
            arraylength
            istore 6 /* l */
        start local 6 // int l
        24: goto 28
        25: .line 129
      StackMap locals: int int
      StackMap stack:
            aload 3 /* docNames */
            iload 5 /* i */
            aaload
            aload 1 /* substring */
            iconst_0
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 27
        26: .line 130
            aload 4 /* results */
            aload 3 /* docNames */
            iload 5 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.add:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 128
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 25
        end local 6 // int l
        end local 5 // int i
        29: .line 131
            goto 39
        30: .line 132
      StackMap locals:
      StackMap stack:
            aload 2 /* memoryIndex */
            getfield org.eclipse.jdt.internal.core.index.MemoryIndex.docsToReferences:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            astore 5 /* docsToRefs */
        start local 5 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable docsToRefs
        31: .line 133
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        32: aload 3 /* docNames */
            arraylength
            istore 7 /* l */
        start local 7 // int l
        33: goto 38
        34: .line 134
      StackMap locals: org.eclipse.jdt.internal.compiler.util.SimpleLookupTable int int
      StackMap stack:
            aload 3 /* docNames */
            iload 6 /* i */
            aaload
            astore 8 /* docName */
        start local 8 // java.lang.String docName
        35: .line 135
            aload 8 /* docName */
            aload 1 /* substring */
            iconst_0
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 37
            aload 5 /* docsToRefs */
            aload 8 /* docName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.containsKey:(Ljava/lang/Object;)Z
            ifne 37
        36: .line 136
            aload 4 /* results */
            aload 8 /* docName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.add:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.String docName
        37: .line 133
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 6 /* i */
            iload 7 /* l */
            if_icmplt 34
        end local 7 // int l
        end local 6 // int i
        end local 5 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable docsToRefs
        39: .line 140
      StackMap locals:
      StackMap stack:
            aload 4 /* results */
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.util.SimpleSet results
        end local 3 // java.lang.String[] docNames
        end local 2 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
        end local 1 // java.lang.String substring
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   40     0         this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   40     1    substring  Ljava/lang/String;
            0   40     2  memoryIndex  Lorg/eclipse/jdt/internal/core/index/MemoryIndex;
            1   40     3     docNames  [Ljava/lang/String;
            2   40     4      results  Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
            5   10     5            i  I
            6   10     6            l  I
           12   20     5   docsToRefs  Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
           13   20     6            i  I
           14   20     7            l  I
           16   18     8      docName  Ljava/lang/String;
           23   29     5            i  I
           24   29     6            l  I
           31   39     5   docsToRefs  Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
           32   39     6            i  I
           33   39     7            l  I
           35   37     8      docName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      substring    
      memoryIndex  

  private org.eclipse.jdt.internal.compiler.util.HashtableOfObject addQueryResult(org.eclipse.jdt.internal.compiler.util.HashtableOfObject, char[], java.lang.Object, org.eclipse.jdt.internal.core.index.MemoryIndex, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;[CLjava/lang/Object;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;Z)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=6
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject results
        start local 2 // char[] word
        start local 3 // java.lang.Object docs
        start local 4 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
        start local 5 // boolean prevResults
         0: .line 144
            aload 1 /* results */
            ifnonnull 2
         1: .line 145
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            bipush 13
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            astore 1 /* results */
         2: .line 146
      StackMap locals:
      StackMap stack:
            iload 5 /* prevResults */
            ifeq 3
            aload 1 /* results */
            aload 2 /* word */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.index.EntryResult
            goto 4
      StackMap locals:
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.core.index.EntryResult
         4: astore 6 /* result */
        start local 6 // org.eclipse.jdt.internal.core.index.EntryResult result
         5: .line 147
            aload 4 /* memoryIndex */
            ifnonnull 10
         6: .line 148
            aload 6 /* result */
            ifnonnull 8
         7: .line 149
            aload 1 /* results */
            aload 2 /* word */
            new org.eclipse.jdt.internal.core.index.EntryResult
            dup
            aload 2 /* word */
            aload 3 /* docs */
            invokespecial org.eclipse.jdt.internal.core.index.EntryResult.<init>:([CLjava/lang/Object;)V
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely:([CLjava/lang/Object;)V
            goto 23
         8: .line 151
      StackMap locals: org.eclipse.jdt.internal.core.index.EntryResult
      StackMap stack:
            aload 6 /* result */
            aload 3 /* docs */
            invokevirtual org.eclipse.jdt.internal.core.index.EntryResult.addDocumentTable:(Ljava/lang/Object;)V
         9: .line 152
            goto 23
        10: .line 153
      StackMap locals:
      StackMap stack:
            aload 4 /* memoryIndex */
            getfield org.eclipse.jdt.internal.core.index.MemoryIndex.docsToReferences:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            astore 7 /* docsToRefs */
        start local 7 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable docsToRefs
        11: .line 154
            aload 6 /* result */
            ifnonnull 12
            new org.eclipse.jdt.internal.core.index.EntryResult
            dup
            aload 2 /* word */
            aconst_null
            invokespecial org.eclipse.jdt.internal.core.index.EntryResult.<init>:([CLjava/lang/Object;)V
            astore 6 /* result */
        12: .line 155
      StackMap locals: org.eclipse.jdt.internal.compiler.util.SimpleLookupTable
      StackMap stack:
            aload 0 /* this */
            aload 3 /* docs */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readDocumentNumbers:(Ljava/lang/Object;)[I
            astore 8 /* docNumbers */
        start local 8 // int[] docNumbers
        13: .line 156
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        14: aload 8 /* docNumbers */
            arraylength
            istore 10 /* l */
        start local 10 // int l
        15: goto 20
        16: .line 157
      StackMap locals: int[] int int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* docNumbers */
            iload 9 /* i */
            iaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readDocumentName:(I)Ljava/lang/String;
            astore 11 /* docName */
        start local 11 // java.lang.String docName
        17: .line 158
            aload 7 /* docsToRefs */
            aload 11 /* docName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.containsKey:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 159
            aload 6 /* result */
            aload 11 /* docName */
            invokevirtual org.eclipse.jdt.internal.core.index.EntryResult.addDocumentName:(Ljava/lang/String;)V
        end local 11 // java.lang.String docName
        19: .line 156
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 9 /* i */
            iload 10 /* l */
            if_icmplt 16
        end local 10 // int l
        end local 9 // int i
        21: .line 161
            aload 6 /* result */
            invokevirtual org.eclipse.jdt.internal.core.index.EntryResult.isEmpty:()Z
            ifne 23
        22: .line 162
            aload 1 /* results */
            aload 2 /* word */
            aload 6 /* result */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // int[] docNumbers
        end local 7 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable docsToRefs
        23: .line 164
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[] java.lang.Object org.eclipse.jdt.internal.core.index.MemoryIndex int org.eclipse.jdt.internal.core.index.EntryResult
      StackMap stack:
            aload 1 /* results */
            areturn
        end local 6 // org.eclipse.jdt.internal.core.index.EntryResult result
        end local 5 // boolean prevResults
        end local 4 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
        end local 3 // java.lang.Object docs
        end local 2 // char[] word
        end local 1 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject results
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   24     1      results  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            0   24     2         word  [C
            0   24     3         docs  Ljava/lang/Object;
            0   24     4  memoryIndex  Lorg/eclipse/jdt/internal/core/index/MemoryIndex;
            0   24     5  prevResults  Z
            5   24     6       result  Lorg/eclipse/jdt/internal/core/index/EntryResult;
           11   23     7   docsToRefs  Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
           13   23     8   docNumbers  [I
           14   21     9            i  I
           15   21    10            l  I
           17   19    11      docName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      results      
      word         
      docs         
      memoryIndex  
      prevResults  

  org.eclipse.jdt.internal.compiler.util.HashtableOfObject addQueryResults(char[][], char[], int, org.eclipse.jdt.internal.core.index.MemoryIndex);
    descriptor: ([[C[CILorg/eclipse/jdt/internal/core/index/MemoryIndex;)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
    flags: (0x0000) 
    Code:
      stack=6, locals=16, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // char[][] categories
        start local 2 // char[] key
        start local 3 // int matchRule
        start local 4 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
         0: .line 168
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            ifnonnull 1
            aconst_null
            areturn
         1: .line 170
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* results */
        start local 5 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject results
         2: .line 174
            iconst_0
            istore 6 /* prevResults */
        start local 6 // boolean prevResults
         3: .line 175
            aload 2 /* key */
            ifnonnull 28
         4: .line 176
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: aload 1 /* categories */
            arraylength
            istore 8 /* l */
        start local 8 // int l
         6: goto 24
         7: .line 177
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* categories */
            iload 7 /* i */
            aaload
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable:([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 9 /* wordsToDocNumbers */
        start local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
         8: .line 178
            aload 9 /* wordsToDocNumbers */
            ifnull 20
         9: .line 179
            aload 9 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 10 /* words */
        start local 10 // char[][] words
        10: .line 180
            aload 9 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 11 /* values */
        start local 11 // java.lang.Object[] values
        11: .line 181
            aload 5 /* results */
            ifnonnull 13
        12: .line 182
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            aload 9 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.elementSize:I
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            astore 5 /* results */
        13: .line 183
      StackMap locals: org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[]
      StackMap stack:
            iconst_0
            istore 12 /* j */
        start local 12 // int j
        14: aload 10 /* words */
            arraylength
            istore 13 /* m */
        start local 13 // int m
        15: goto 19
        16: .line 184
      StackMap locals: int int
      StackMap stack:
            aload 10 /* words */
            iload 12 /* j */
            aaload
            ifnull 18
        17: .line 185
            aload 0 /* this */
            aload 5 /* results */
            aload 10 /* words */
            iload 12 /* j */
            aaload
            aload 11 /* values */
            iload 12 /* j */
            aaload
            aload 4 /* memoryIndex */
            iload 6 /* prevResults */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResult:(Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;[CLjava/lang/Object;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;Z)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 5 /* results */
        18: .line 183
      StackMap locals:
      StackMap stack:
            iinc 12 /* j */ 1
      StackMap locals:
      StackMap stack:
        19: iload 12 /* j */
            iload 13 /* m */
            if_icmplt 16
        end local 13 // int m
        end local 12 // int j
        end local 11 // java.lang.Object[] values
        end local 10 // char[][] words
        20: .line 187
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 5 /* results */
            ifnull 21
            iconst_1
            goto 22
      StackMap locals:
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 6 /* prevResults */
        end local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        23: .line 176
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            iload 8 /* l */
            if_icmplt 7
        end local 8 // int l
        end local 7 // int i
        25: .line 189
            aload 5 /* results */
            ifnull 105
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
            ifnonnull 105
        26: .line 190
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.cacheDocumentNames:()V
        27: .line 191
            goto 105
        28: .line 192
      StackMap locals:
      StackMap stack:
            iload 3 /* matchRule */
            tableswitch { // 4 - 9
                    4: 63
                    5: 85
                    6: 85
                    7: 85
                    8: 29
                    9: 42
              default: 85
          }
        29: .line 194
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        30: aload 1 /* categories */
            arraylength
            istore 8 /* l */
        start local 8 // int l
        31: goto 40
        32: .line 195
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* categories */
            iload 7 /* i */
            aaload
            iconst_0
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable:([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 9 /* wordsToDocNumbers */
        start local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        33: .line 197
            aload 9 /* wordsToDocNumbers */
            ifnull 36
            aload 9 /* wordsToDocNumbers */
            aload 2 /* key */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            dup
            astore 10 /* value */
        start local 10 // java.lang.Object value
        34: ifnull 36
        35: .line 198
            aload 0 /* this */
            aload 5 /* results */
            aload 2 /* key */
            aload 10 /* value */
            aload 4 /* memoryIndex */
            iload 6 /* prevResults */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResult:(Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;[CLjava/lang/Object;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;Z)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 5 /* results */
        end local 10 // java.lang.Object value
        36: .line 199
      StackMap locals: org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 5 /* results */
            ifnull 37
            iconst_1
            goto 38
      StackMap locals:
      StackMap stack:
        37: iconst_0
      StackMap locals:
      StackMap stack: int
        38: istore 6 /* prevResults */
        end local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        39: .line 194
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 7 /* i */
            iload 8 /* l */
            if_icmplt 32
        end local 8 // int l
        end local 7 // int i
        41: .line 201
            goto 105
        42: .line 203
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        43: aload 1 /* categories */
            arraylength
            istore 8 /* l */
        start local 8 // int l
        44: goto 61
        45: .line 204
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* categories */
            iload 7 /* i */
            aaload
            iconst_0
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable:([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 9 /* wordsToDocNumbers */
        start local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        46: .line 205
            aload 9 /* wordsToDocNumbers */
            ifnull 57
        47: .line 206
            aload 9 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 10 /* words */
        start local 10 // char[][] words
        48: .line 207
            aload 9 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 11 /* values */
        start local 11 // java.lang.Object[] values
        49: .line 208
            iconst_0
            istore 12 /* j */
        start local 12 // int j
        50: aload 10 /* words */
            arraylength
            istore 13 /* m */
        start local 13 // int m
        51: goto 56
        52: .line 209
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[] int int
      StackMap stack:
            aload 10 /* words */
            iload 12 /* j */
            aaload
            astore 14 /* word */
        start local 14 // char[] word
        53: .line 210
            aload 14 /* word */
            ifnull 55
            aload 2 /* key */
            iconst_0
            caload
            aload 14 /* word */
            iconst_0
            caload
            if_icmpne 55
            aload 2 /* key */
            aload 14 /* word */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.prefixEquals:([C[C)Z
            ifeq 55
        54: .line 211
            aload 0 /* this */
            aload 5 /* results */
            aload 14 /* word */
            aload 11 /* values */
            iload 12 /* j */
            aaload
            aload 4 /* memoryIndex */
            iload 6 /* prevResults */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResult:(Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;[CLjava/lang/Object;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;Z)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 5 /* results */
        end local 14 // char[] word
        55: .line 208
      StackMap locals:
      StackMap stack:
            iinc 12 /* j */ 1
      StackMap locals:
      StackMap stack:
        56: iload 12 /* j */
            iload 13 /* m */
            if_icmplt 52
        end local 13 // int m
        end local 12 // int j
        end local 11 // java.lang.Object[] values
        end local 10 // char[][] words
        57: .line 214
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 5 /* results */
            ifnull 58
            iconst_1
            goto 59
      StackMap locals:
      StackMap stack:
        58: iconst_0
      StackMap locals:
      StackMap stack: int
        59: istore 6 /* prevResults */
        end local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        60: .line 203
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        61: iload 7 /* i */
            iload 8 /* l */
            if_icmplt 45
        end local 8 // int l
        end local 7 // int i
        62: .line 216
            goto 105
        63: .line 218
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 2 /* key */
            invokespecial java.lang.String.<init>:([C)V
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 7 /* pattern */
        start local 7 // java.util.regex.Pattern pattern
        64: .line 219
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        65: aload 1 /* categories */
            arraylength
            istore 9 /* l */
        start local 9 // int l
        66: goto 83
        67: .line 220
      StackMap locals: java.util.regex.Pattern int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* categories */
            iload 8 /* i */
            aaload
            iconst_0
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable:([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 10 /* wordsToDocNumbers */
        start local 10 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        68: .line 221
            aload 10 /* wordsToDocNumbers */
            ifnull 79
        69: .line 222
            aload 10 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 11 /* words */
        start local 11 // char[][] words
        70: .line 223
            aload 10 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 12 /* values */
        start local 12 // java.lang.Object[] values
        71: .line 224
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        72: aload 11 /* words */
            arraylength
            istore 14 /* m */
        start local 14 // int m
        73: goto 78
        74: .line 225
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int java.util.regex.Pattern int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[] int int
      StackMap stack:
            aload 11 /* words */
            iload 13 /* j */
            aaload
            astore 15 /* word */
        start local 15 // char[] word
        75: .line 226
            aload 15 /* word */
            ifnull 77
            aload 7 /* pattern */
            new java.lang.String
            dup
            aload 15 /* word */
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 77
        76: .line 227
            aload 0 /* this */
            aload 5 /* results */
            aload 15 /* word */
            aload 12 /* values */
            iload 13 /* j */
            aaload
            aload 4 /* memoryIndex */
            iload 6 /* prevResults */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResult:(Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;[CLjava/lang/Object;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;Z)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 5 /* results */
        end local 15 // char[] word
        77: .line 224
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        78: iload 13 /* j */
            iload 14 /* m */
            if_icmplt 74
        end local 14 // int m
        end local 13 // int j
        end local 12 // java.lang.Object[] values
        end local 11 // char[][] words
        79: .line 230
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int java.util.regex.Pattern int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 5 /* results */
            ifnull 80
            iconst_1
            goto 81
      StackMap locals:
      StackMap stack:
        80: iconst_0
      StackMap locals:
      StackMap stack: int
        81: istore 6 /* prevResults */
        end local 10 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        82: .line 219
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        83: iload 8 /* i */
            iload 9 /* l */
            if_icmplt 67
        end local 9 // int l
        end local 8 // int i
        84: .line 232
            goto 105
        end local 7 // java.util.regex.Pattern pattern
        85: .line 234
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        86: aload 1 /* categories */
            arraylength
            istore 9 /* l */
        start local 9 // int l
        87: goto 104
        88: .line 235
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int top int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* categories */
            iload 8 /* i */
            aaload
            iconst_0
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable:([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 10 /* wordsToDocNumbers */
        start local 10 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
        89: .line 236
            aload 10 /* wordsToDocNumbers */
            ifnull 100
        90: .line 237
            aload 10 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 11 /* words */
        start local 11 // char[][] words
        91: .line 238
            aload 10 /* wordsToDocNumbers */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 12 /* values */
        start local 12 // java.lang.Object[] values
        92: .line 239
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        93: aload 11 /* words */
            arraylength
            istore 14 /* m */
        start local 14 // int m
        94: goto 99
        95: .line 240
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int top int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[] int int
      StackMap stack:
            aload 11 /* words */
            iload 13 /* j */
            aaload
            astore 15 /* word */
        start local 15 // char[] word
        96: .line 241
            aload 15 /* word */
            ifnull 98
            aload 2 /* key */
            aload 15 /* word */
            iload 3 /* matchRule */
            invokestatic org.eclipse.jdt.internal.core.index.Index.isMatch:([C[CI)Z
            ifeq 98
        97: .line 242
            aload 0 /* this */
            aload 5 /* results */
            aload 15 /* word */
            aload 12 /* values */
            iload 13 /* j */
            aaload
            aload 4 /* memoryIndex */
            iload 6 /* prevResults */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResult:(Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;[CLjava/lang/Object;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;Z)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 5 /* results */
        end local 15 // char[] word
        98: .line 239
      StackMap locals:
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        99: iload 13 /* j */
            iload 14 /* m */
            if_icmplt 95
        end local 14 // int m
        end local 13 // int j
        end local 12 // java.lang.Object[] values
        end local 11 // char[][] words
       100: .line 245
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int top int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 5 /* results */
            ifnull 101
            iconst_1
            goto 102
      StackMap locals:
      StackMap stack:
       101: iconst_0
      StackMap locals:
      StackMap stack: int
       102: istore 6 /* prevResults */
        end local 10 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocNumbers
       103: .line 234
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
       104: iload 8 /* i */
            iload 9 /* l */
            if_icmplt 88
        end local 9 // int l
        end local 8 // int i
       105: .line 250
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[][] char[] int org.eclipse.jdt.internal.core.index.MemoryIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int
      StackMap stack:
            aload 5 /* results */
            areturn
        end local 6 // boolean prevResults
        end local 5 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject results
        end local 4 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
        end local 3 // int matchRule
        end local 2 // char[] key
        end local 1 // char[][] categories
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  106     0               this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0  106     1         categories  [[C
            0  106     2                key  [C
            0  106     3          matchRule  I
            0  106     4        memoryIndex  Lorg/eclipse/jdt/internal/core/index/MemoryIndex;
            2  106     5            results  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            3  106     6        prevResults  Z
            5   25     7                  i  I
            6   25     8                  l  I
            8   23     9  wordsToDocNumbers  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           10   20    10              words  [[C
           11   20    11             values  [Ljava/lang/Object;
           14   20    12                  j  I
           15   20    13                  m  I
           30   41     7                  i  I
           31   41     8                  l  I
           33   39     9  wordsToDocNumbers  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           34   36    10              value  Ljava/lang/Object;
           43   62     7                  i  I
           44   62     8                  l  I
           46   60     9  wordsToDocNumbers  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           48   57    10              words  [[C
           49   57    11             values  [Ljava/lang/Object;
           50   57    12                  j  I
           51   57    13                  m  I
           53   55    14               word  [C
           64   85     7            pattern  Ljava/util/regex/Pattern;
           65   84     8                  i  I
           66   84     9                  l  I
           68   82    10  wordsToDocNumbers  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           70   79    11              words  [[C
           71   79    12             values  [Ljava/lang/Object;
           72   79    13                  j  I
           73   79    14                  m  I
           75   77    15               word  [C
           86  105     8                  i  I
           87  105     9                  l  I
           89  103    10  wordsToDocNumbers  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           91  100    11              words  [[C
           92  100    12             values  [Ljava/lang/Object;
           93  100    13                  j  I
           94  100    14                  m  I
           96   98    15               word  [C
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      categories   
      key          
      matchRule    
      memoryIndex  

  private void cacheDocumentNames();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
         0: .line 254
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            anewarray java.lang.String[]
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
         1: .line 255
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 1 /* stream */
        start local 1 // java.io.InputStream stream
         2: .line 257
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            iconst_5
            if_icmple 3
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            iconst_1
            ishl
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
         3: .line 258
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iconst_0
            iaload
            istore 2 /* offset */
        start local 2 // int offset
         4: .line 259
            aload 1 /* stream */
            iload 2 /* offset */
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
         5: .line 260
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
         6: .line 261
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         7: .line 262
            aload 0 /* this */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
         8: .line 263
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 15
        10: .line 264
      StackMap locals: int int
      StackMap stack:
            iload 3 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            iconst_1
            isub
            if_icmpne 11
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
            goto 12
      StackMap locals:
      StackMap stack:
        11: bipush 100
      StackMap locals:
      StackMap stack: int
        12: istore 4 /* size */
        start local 4 // int size
        13: .line 265
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
            iload 3 /* i */
            iload 4 /* size */
            anewarray java.lang.String
            dup_x2
            aastore
            aload 1 /* stream */
            iconst_0
            iload 4 /* size */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readChunk:([Ljava/lang/String;Ljava/io/InputStream;II)V
        end local 4 // int size
        14: .line 263
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            if_icmplt 10
        end local 3 // int i
        end local 2 // int offset
        16: .line 267
            goto 26
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream
      StackMap stack: java.io.IOException
        17: astore 2 /* e */
        start local 2 // java.io.IOException e
        18: .line 268
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
        19: .line 269
            aload 2 /* e */
            athrow
        end local 2 // java.io.IOException e
        20: .line 270
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        21: .line 271
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        22: .line 272
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        23: .line 273
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        24: .line 274
            sipush 2048
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
        25: .line 275
            aload 5
            athrow
        26: .line 271
      StackMap locals:
      StackMap stack:
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        27: .line 272
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        28: .line 273
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        29: .line 274
            sipush 2048
            putstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
        30: .line 276
            return
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            2   31     1  stream  Ljava/io/InputStream;
            4   16     2  offset  I
            9   16     3       i  I
           13   14     4    size  I
           18   20     2       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    16      17  Class java.io.IOException
           2    20      20  any
    Exceptions:
      throws java.io.IOException

  private java.lang.String[] computeDocumentNames(java.lang.String[], int[], org.eclipse.jdt.internal.compiler.util.SimpleLookupTable, org.eclipse.jdt.internal.core.index.MemoryIndex);
    descriptor: ([Ljava/lang/String;[ILorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=14, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.lang.String[] onDiskNames
        start local 2 // int[] positions
        start local 3 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable indexedDocuments
        start local 4 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
         0: .line 278
            aload 1 /* onDiskNames */
            arraylength
            istore 5 /* onDiskLength */
        start local 5 // int onDiskLength
         1: .line 279
            aload 4 /* memoryIndex */
            getfield org.eclipse.jdt.internal.core.index.MemoryIndex.docsToReferences:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 6 /* docNames */
        start local 6 // java.lang.Object[] docNames
         2: .line 280
            aload 4 /* memoryIndex */
            getfield org.eclipse.jdt.internal.core.index.MemoryIndex.docsToReferences:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.valueTable:[Ljava/lang/Object;
            astore 7 /* referenceTables */
        start local 7 // java.lang.Object[] referenceTables
         3: .line 281
            iload 5 /* onDiskLength */
            ifne 29
         4: .line 283
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: aload 7 /* referenceTables */
            arraylength
            istore 9 /* l */
        start local 9 // int l
         6: goto 10
         7: .line 284
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable org.eclipse.jdt.internal.core.index.MemoryIndex int java.lang.Object[] java.lang.Object[] int int
      StackMap stack:
            aload 7 /* referenceTables */
            iload 8 /* i */
            aaload
            ifnull 9
         8: .line 285
            aload 3 /* indexedDocuments */
            aload 6 /* docNames */
            iload 8 /* i */
            aaload
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 283
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 8 /* i */
            iload 9 /* l */
            if_icmplt 7
        end local 9 // int l
        end local 8 // int i
        11: .line 287
            aload 3 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.elementSize:I
            anewarray java.lang.String
            astore 8 /* newDocNames */
        start local 8 // java.lang.String[] newDocNames
        12: .line 288
            iconst_0
            istore 9 /* count */
        start local 9 // int count
        13: .line 289
            aload 3 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 10 /* added */
        start local 10 // java.lang.Object[] added
        14: .line 290
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        15: aload 10 /* added */
            arraylength
            istore 12 /* l */
        start local 12 // int l
        16: goto 20
        17: .line 291
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable org.eclipse.jdt.internal.core.index.MemoryIndex int java.lang.Object[] java.lang.Object[] java.lang.String[] int java.lang.Object[] int int
      StackMap stack:
            aload 10 /* added */
            iload 11 /* i */
            aaload
            ifnull 19
        18: .line 292
            aload 8 /* newDocNames */
            iload 9 /* count */
            iinc 9 /* count */ 1
            aload 10 /* added */
            iload 11 /* i */
            aaload
            checkcast java.lang.String
            aastore
        19: .line 290
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 11 /* i */
            iload 12 /* l */
            if_icmplt 17
        end local 12 // int l
        end local 11 // int i
        21: .line 293
            aload 8 /* newDocNames */
            invokestatic org.eclipse.jdt.internal.core.util.Util.sort:([Ljava/lang/String;)V
        22: .line 294
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        23: aload 8 /* newDocNames */
            arraylength
            istore 12 /* l */
        start local 12 // int l
        24: goto 27
        25: .line 295
      StackMap locals:
      StackMap stack:
            aload 3 /* indexedDocuments */
            aload 8 /* newDocNames */
            iload 11 /* i */
            aaload
            iload 11 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 294
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 11 /* i */
            iload 12 /* l */
            if_icmplt 25
        end local 12 // int l
        end local 11 // int i
        28: .line 296
            aload 8 /* newDocNames */
            areturn
        end local 10 // java.lang.Object[] added
        end local 9 // int count
        end local 8 // java.lang.String[] newDocNames
        29: .line 300
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable org.eclipse.jdt.internal.core.index.MemoryIndex int java.lang.Object[] java.lang.Object[]
      StackMap stack:
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        30: goto 33
        31: .line 301
      StackMap locals: int
      StackMap stack:
            aload 2 /* positions */
            iload 8 /* i */
            iload 8 /* i */
            iastore
        32: .line 300
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 8 /* i */
            iload 5 /* onDiskLength */
            if_icmplt 31
        end local 8 // int i
        34: .line 304
            iconst_0
            istore 8 /* numDeletedDocNames */
        start local 8 // int numDeletedDocNames
        35: .line 305
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        36: aload 6 /* docNames */
            arraylength
            istore 10 /* l */
        start local 10 // int l
        37: goto 54
        38: .line 306
      StackMap locals: int int
      StackMap stack:
            aload 6 /* docNames */
            iload 9 /* i */
            aaload
            checkcast java.lang.String
            astore 11 /* docName */
        start local 11 // java.lang.String docName
        39: .line 307
            aload 11 /* docName */
            ifnull 53
        40: .line 308
            iconst_0
            istore 12 /* j */
        start local 12 // int j
        41: goto 50
        42: .line 309
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 11 /* docName */
            aload 1 /* onDiskNames */
            iload 12 /* j */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        43: .line 310
            aload 7 /* referenceTables */
            iload 9 /* i */
            aaload
            ifnonnull 47
        44: .line 311
            aload 2 /* positions */
            iload 12 /* j */
            bipush -2
            iastore
        45: .line 312
            iinc 8 /* numDeletedDocNames */ 1
        46: .line 313
            goto 53
        47: .line 314
      StackMap locals:
      StackMap stack:
            aload 2 /* positions */
            iload 12 /* j */
            iconst_m1
            iastore
        48: .line 316
            goto 53
        49: .line 308
      StackMap locals:
      StackMap stack:
            iinc 12 /* j */ 1
      StackMap locals:
      StackMap stack:
        50: iload 12 /* j */
            iload 5 /* onDiskLength */
            if_icmplt 42
        end local 12 // int j
        51: .line 319
            aload 7 /* referenceTables */
            iload 9 /* i */
            aaload
            ifnull 53
        52: .line 320
            aload 3 /* indexedDocuments */
            aload 11 /* docName */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // java.lang.String docName
        53: .line 305
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        54: iload 9 /* i */
            iload 10 /* l */
            if_icmplt 38
        end local 10 // int l
        end local 9 // int i
        55: .line 324
            aload 1 /* onDiskNames */
            astore 9 /* newDocNames */
        start local 9 // java.lang.String[] newDocNames
        56: .line 325
            iload 8 /* numDeletedDocNames */
            ifgt 57
            aload 3 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.elementSize:I
            ifle 81
        57: .line 327
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable org.eclipse.jdt.internal.core.index.MemoryIndex int java.lang.Object[] java.lang.Object[] int java.lang.String[]
      StackMap stack:
            iload 5 /* onDiskLength */
            aload 3 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.elementSize:I
            iadd
            iload 8 /* numDeletedDocNames */
            isub
            anewarray java.lang.String
            astore 9 /* newDocNames */
        58: .line 328
            iconst_0
            istore 10 /* count */
        start local 10 // int count
        59: .line 329
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        60: goto 64
        61: .line 330
      StackMap locals: int int
      StackMap stack:
            aload 2 /* positions */
            iload 11 /* i */
            iaload
            iconst_m1
            if_icmplt 63
        62: .line 331
            aload 9 /* newDocNames */
            iload 10 /* count */
            iinc 10 /* count */ 1
            aload 1 /* onDiskNames */
            iload 11 /* i */
            aaload
            aastore
        63: .line 329
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 11 /* i */
            iload 5 /* onDiskLength */
            if_icmplt 61
        end local 11 // int i
        65: .line 332
            aload 3 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 11 /* added */
        start local 11 // java.lang.Object[] added
        66: .line 333
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        67: aload 11 /* added */
            arraylength
            istore 13 /* l */
        start local 13 // int l
        68: goto 72
        69: .line 334
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable org.eclipse.jdt.internal.core.index.MemoryIndex int java.lang.Object[] java.lang.Object[] int java.lang.String[] int java.lang.Object[] int int
      StackMap stack:
            aload 11 /* added */
            iload 12 /* i */
            aaload
            ifnull 71
        70: .line 335
            aload 9 /* newDocNames */
            iload 10 /* count */
            iinc 10 /* count */ 1
            aload 11 /* added */
            iload 12 /* i */
            aaload
            checkcast java.lang.String
            aastore
        71: .line 333
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        72: iload 12 /* i */
            iload 13 /* l */
            if_icmplt 69
        end local 13 // int l
        end local 12 // int i
        73: .line 336
            aload 9 /* newDocNames */
            invokestatic org.eclipse.jdt.internal.core.util.Util.sort:([Ljava/lang/String;)V
        74: .line 337
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        75: aload 9 /* newDocNames */
            arraylength
            istore 13 /* l */
        start local 13 // int l
        76: goto 80
        77: .line 338
      StackMap locals:
      StackMap stack:
            aload 3 /* indexedDocuments */
            aload 9 /* newDocNames */
            iload 12 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.containsKey:(Ljava/lang/Object;)Z
            ifeq 79
        78: .line 339
            aload 3 /* indexedDocuments */
            aload 9 /* newDocNames */
            iload 12 /* i */
            aaload
            iload 12 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        79: .line 337
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        80: iload 12 /* i */
            iload 13 /* l */
            if_icmplt 77
        end local 13 // int l
        end local 12 // int i
        end local 11 // java.lang.Object[] added
        end local 10 // int count
        81: .line 345
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable org.eclipse.jdt.internal.core.index.MemoryIndex int java.lang.Object[] java.lang.Object[] int java.lang.String[]
      StackMap stack:
            iconst_m1
            istore 10 /* count */
        start local 10 // int count
        82: .line 346
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        83: goto 94
        84: .line 347
      StackMap locals: int int
      StackMap stack:
            aload 2 /* positions */
            iload 11 /* i */
            iaload
            tableswitch { // -2 - -1
                   -2: 85
                   -1: 87
              default: 92
          }
        85: .line 349
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
        86: .line 350
            goto 94
        87: .line 352
      StackMap locals:
      StackMap stack:
            aload 9 /* newDocNames */
            iinc 10 /* count */ 1
            iload 10 /* count */
            aaload
            astore 12 /* newName */
        start local 12 // java.lang.String newName
        88: .line 353
            aload 12 /* newName */
            aload 1 /* onDiskNames */
            iload 11 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 94
        89: .line 354
            aload 3 /* indexedDocuments */
            aload 12 /* newName */
            iload 10 /* count */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        90: .line 355
            iinc 11 /* i */ 1
        91: .line 357
            goto 94
        end local 12 // java.lang.String newName
        92: .line 359
      StackMap locals:
      StackMap stack:
            aload 9 /* newDocNames */
            iinc 10 /* count */ 1
            iload 10 /* count */
            aaload
            aload 1 /* onDiskNames */
            iload 11 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 94
        93: .line 360
            aload 2 /* positions */
            iload 11 /* i */
            iinc 11 /* i */ 1
            iload 10 /* count */
            iastore
        94: .line 346
      StackMap locals:
      StackMap stack:
            iload 11 /* i */
            iload 5 /* onDiskLength */
            if_icmplt 84
        end local 11 // int i
        95: .line 363
            aload 9 /* newDocNames */
            areturn
        end local 10 // int count
        end local 9 // java.lang.String[] newDocNames
        end local 8 // int numDeletedDocNames
        end local 7 // java.lang.Object[] referenceTables
        end local 6 // java.lang.Object[] docNames
        end local 5 // int onDiskLength
        end local 4 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
        end local 3 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable indexedDocuments
        end local 2 // int[] positions
        end local 1 // java.lang.String[] onDiskNames
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   96     0                this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   96     1         onDiskNames  [Ljava/lang/String;
            0   96     2           positions  [I
            0   96     3    indexedDocuments  Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            0   96     4         memoryIndex  Lorg/eclipse/jdt/internal/core/index/MemoryIndex;
            1   96     5        onDiskLength  I
            2   96     6            docNames  [Ljava/lang/Object;
            3   96     7     referenceTables  [Ljava/lang/Object;
            5   11     8                   i  I
            6   11     9                   l  I
           12   29     8         newDocNames  [Ljava/lang/String;
           13   29     9               count  I
           14   29    10               added  [Ljava/lang/Object;
           15   21    11                   i  I
           16   21    12                   l  I
           23   28    11                   i  I
           24   28    12                   l  I
           30   34     8                   i  I
           35   96     8  numDeletedDocNames  I
           36   55     9                   i  I
           37   55    10                   l  I
           39   53    11             docName  Ljava/lang/String;
           41   51    12                   j  I
           56   96     9         newDocNames  [Ljava/lang/String;
           59   81    10               count  I
           60   65    11                   i  I
           66   81    11               added  [Ljava/lang/Object;
           67   73    12                   i  I
           68   73    13                   l  I
           75   81    12                   i  I
           76   81    13                   l  I
           82   96    10               count  I
           83   95    11                   i  I
           88   92    12             newName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      onDiskNames       
      positions         
      indexedDocuments  
      memoryIndex       

  private void copyQueryResults(org.eclipse.jdt.internal.compiler.util.HashtableOfObject, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=16, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject categoryToWords
        start local 2 // int newPosition
         0: .line 366
            aload 1 /* categoryToWords */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 3 /* categoryNames */
        start local 3 // char[][] categoryNames
         1: .line 367
            aload 1 /* categoryToWords */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 4 /* wordSets */
        start local 4 // java.lang.Object[] wordSets
         2: .line 368
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: aload 3 /* categoryNames */
            arraylength
            istore 6 /* l */
        start local 6 // int l
         4: goto 30
         5: .line 369
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int char[][] java.lang.Object[] int int
      StackMap stack:
            aload 3 /* categoryNames */
            iload 5 /* i */
            aaload
            astore 7 /* categoryName */
        start local 7 // char[] categoryName
         6: .line 370
            aload 7 /* categoryName */
            ifnull 29
         7: .line 371
            aload 4 /* wordSets */
            iload 5 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.core.util.SimpleWordSet
            astore 8 /* wordSet */
        start local 8 // org.eclipse.jdt.internal.core.util.SimpleWordSet wordSet
         8: .line 372
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 7 /* categoryName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            astore 9 /* wordsToDocs */
        start local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocs
         9: .line 373
            aload 9 /* wordsToDocs */
            ifnonnull 11
        10: .line 374
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 7 /* categoryName */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            aload 8 /* wordSet */
            getfield org.eclipse.jdt.internal.core.util.SimpleWordSet.elementSize:I
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            dup
            astore 9 /* wordsToDocs */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 376
      StackMap locals: char[] org.eclipse.jdt.internal.core.util.SimpleWordSet org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 8 /* wordSet */
            getfield org.eclipse.jdt.internal.core.util.SimpleWordSet.words:[[C
            astore 10 /* words */
        start local 10 // char[][] words
        12: .line 377
            iconst_0
            istore 11 /* j */
        start local 11 // int j
        13: aload 10 /* words */
            arraylength
            istore 12 /* m */
        start local 12 // int m
        14: goto 28
        15: .line 378
      StackMap locals: char[][] int int
      StackMap stack:
            aload 10 /* words */
            iload 11 /* j */
            aaload
            astore 13 /* word */
        start local 13 // char[] word
        16: .line 379
            aload 13 /* word */
            ifnull 27
        17: .line 380
            aload 9 /* wordsToDocs */
            aload 13 /* word */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            astore 14 /* o */
        start local 14 // java.lang.Object o
        18: .line 381
            aload 14 /* o */
            ifnonnull 21
        19: .line 382
            aload 9 /* wordsToDocs */
            aload 13 /* word */
            iconst_1
            newarray 10
            dup
            iconst_0
            iload 2 /* newPosition */
            iastore
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely:([CLjava/lang/Object;)V
        20: .line 383
            goto 27
      StackMap locals: char[] java.lang.Object
      StackMap stack:
        21: aload 14 /* o */
            instanceof org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            ifeq 24
        22: .line 384
            aload 14 /* o */
            checkcast org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            iload 2 /* newPosition */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex$IntList.add:(I)V
        23: .line 385
            goto 27
        24: .line 386
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            dup
            aload 14 /* o */
            checkcast int[]
            invokespecial org.eclipse.jdt.internal.core.index.DiskIndex$IntList.<init>:([I)V
            astore 15 /* list */
        start local 15 // org.eclipse.jdt.internal.core.index.DiskIndex$IntList list
        25: .line 387
            aload 15 /* list */
            iload 2 /* newPosition */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex$IntList.add:(I)V
        26: .line 388
            aload 9 /* wordsToDocs */
            aload 13 /* word */
            aload 15 /* list */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 15 // org.eclipse.jdt.internal.core.index.DiskIndex$IntList list
        end local 14 // java.lang.Object o
        end local 13 // char[] word
        27: .line 377
      StackMap locals:
      StackMap stack:
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        28: iload 11 /* j */
            iload 12 /* m */
            if_icmplt 15
        end local 12 // int m
        end local 11 // int j
        end local 10 // char[][] words
        end local 9 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocs
        end local 8 // org.eclipse.jdt.internal.core.util.SimpleWordSet wordSet
        end local 7 // char[] categoryName
        29: .line 368
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.compiler.util.HashtableOfObject int char[][] java.lang.Object[] int int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 5
        end local 6 // int l
        end local 5 // int i
        31: .line 394
            return
        end local 4 // java.lang.Object[] wordSets
        end local 3 // char[][] categoryNames
        end local 2 // int newPosition
        end local 1 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject categoryToWords
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0             this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   32     1  categoryToWords  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            0   32     2      newPosition  I
            1   32     3    categoryNames  [[C
            2   32     4         wordSets  [Ljava/lang/Object;
            3   31     5                i  I
            4   31     6                l  I
            6   29     7     categoryName  [C
            8   29     8          wordSet  Lorg/eclipse/jdt/internal/core/util/SimpleWordSet;
            9   29     9      wordsToDocs  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           12   29    10            words  [[C
           13   29    11                j  I
           14   29    12                m  I
           16   27    13             word  [C
           18   27    14                o  Ljava/lang/Object;
           25   27    15             list  Lorg/eclipse/jdt/internal/core/index/DiskIndex$IntList;
    MethodParameters:
                 Name  Flags
      categoryToWords  
      newPosition      

  void initialize(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // boolean reuseExistingFile
         0: .line 396
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.exists:()Z
            ifeq 29
         1: .line 397
            iload 1 /* reuseExistingFile */
            ifeq 25
         2: .line 398
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         3: .line 399
            aload 2 /* stream */
            ifnonnull 5
         4: .line 400
            new java.io.IOException
            dup
            ldc "Failed to use the index file"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 402
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
         6: .line 403
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         7: .line 404
            aload 0 /* this */
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            sipush 128
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
         8: .line 406
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamChars:(Ljava/io/InputStream;)[C
            astore 3 /* signature */
        start local 3 // char[] signature
         9: .line 407
            aload 3 /* signature */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.SIGNATURE_CHARS:[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifne 11
        10: .line 408
            new java.io.IOException
            dup
            getstatic org.eclipse.jdt.internal.core.util.Messages.exception_wrongFormat:Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 410
      StackMap locals: char[]
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
        12: .line 411
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
            ifle 22
        13: .line 412
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            isub
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
        14: .line 413
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        15: .line 414
            aload 0 /* this */
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
        16: .line 415
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readHeaderInfo:(Ljava/io/InputStream;)V
        end local 3 // char[] signature
        17: .line 417
            goto 22
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex int java.io.InputStream
      StackMap stack: java.lang.Throwable
        18: astore 4
        19: .line 418
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
        20: .line 419
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        21: .line 420
            aload 4
            athrow
        22: .line 418
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
        23: .line 419
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        24: .line 421
            return
        end local 2 // java.io.InputStream stream
        25: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.delete:()Z
            ifne 29
        26: .line 424
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 28
        27: .line 425
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "initialize - Failed to delete index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 426
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to delete index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.createNewFile:()Z
            ifeq 44
        30: .line 430
            new java.io.FileOutputStream
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getIndexFile:()Ljava/io/File;
            iconst_0
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
            astore 2 /* stream */
        start local 2 // java.io.FileOutputStream stream
        31: .line 432
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        32: .line 433
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        33: .line 434
            aload 0 /* this */
            aload 2 /* stream */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.SIGNATURE_CHARS:[C
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[C)V
        34: .line 435
            aload 0 /* this */
            aload 2 /* stream */
            iconst_m1
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        35: .line 437
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            ifle 42
        36: .line 438
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        37: .line 439
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        38: .line 441
            goto 42
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex int java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
        39: astore 3
        40: .line 442
            aload 2 /* stream */
            invokevirtual java.io.FileOutputStream.close:()V
        41: .line 443
            aload 3
            athrow
        42: .line 442
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 2 // java.io.FileOutputStream stream
        43: .line 444
            goto 47
        44: .line 445
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 46
        45: .line 446
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "initialize - Failed to create new index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        46: .line 447
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to create new index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 449
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean reuseExistingFile
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   48     0               this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   48     1  reuseExistingFile  Z
            3   25     2             stream  Ljava/io/InputStream;
            9   17     3          signature  [C
           31   43     2             stream  Ljava/io/FileOutputStream;
      Exception table:
        from    to  target  type
           8    18      18  any
          31    39      39  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      reuseExistingFile  

  private void initializeFrom(org.eclipse.jdt.internal.core.index.DiskIndex, java.io.File);
    descriptor: (Lorg/eclipse/jdt/internal/core/index/DiskIndex;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // org.eclipse.jdt.internal.core.index.DiskIndex diskIndex
        start local 2 // java.io.File newIndexFile
         0: .line 451
            aload 2 /* newIndexFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 4
            aload 2 /* newIndexFile */
            invokevirtual java.io.File.delete:()Z
            ifne 4
         1: .line 452
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 8
         2: .line 453
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "initializeFrom - Failed to delete temp index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 454
            goto 8
      StackMap locals:
      StackMap stack:
         4: aload 2 /* newIndexFile */
            invokevirtual java.io.File.createNewFile:()Z
            ifne 8
         5: .line 455
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 7
         6: .line 456
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "initializeFrom - Failed to create temp index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 457
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to create temp index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 460
      StackMap locals:
      StackMap stack:
            aload 1 /* diskIndex */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            ifnonnull 9
            bipush 8
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 1 /* diskIndex */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.elementSize:I
      StackMap locals:
      StackMap stack: int
        10: istore 3 /* size */
        start local 3 // int size
        11: .line 461
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues
            dup
            iload 3 /* size */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
        12: .line 462
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues
            dup
            iload 3 /* size */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryEnds:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
        13: .line 463
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iload 3 /* size */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
        14: .line 464
            aload 0 /* this */
            aload 1 /* diskIndex */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.separator:C
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.separator:C
        15: .line 465
            return
        end local 3 // int size
        end local 2 // java.io.File newIndexFile
        end local 1 // org.eclipse.jdt.internal.core.index.DiskIndex diskIndex
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   16     1     diskIndex  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   16     2  newIndexFile  Ljava/io/File;
           11   16     3          size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      diskIndex     
      newIndexFile  

  private void mergeCategories(org.eclipse.jdt.internal.core.index.DiskIndex, int[], java.io.FileOutputStream);
    descriptor: (Lorg/eclipse/jdt/internal/core/index/DiskIndex;[ILjava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // org.eclipse.jdt.internal.core.index.DiskIndex onDisk
        start local 2 // int[] positions
        start local 3 // java.io.FileOutputStream stream
         0: .line 468
            aload 1 /* onDisk */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.keyTable:[[C
            astore 4 /* oldNames */
        start local 4 // char[][] oldNames
         1: .line 469
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: aload 4 /* oldNames */
            arraylength
            istore 6 /* l */
        start local 6 // int l
         3: goto 8
         4: .line 470
      StackMap locals: char[][] int int
      StackMap stack:
            aload 4 /* oldNames */
            iload 5 /* i */
            aaload
            astore 7 /* oldName */
        start local 7 // char[] oldName
         5: .line 471
            aload 7 /* oldName */
            ifnull 7
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 7 /* oldName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.containsKey:([C)Z
            ifne 7
         6: .line 472
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 7 /* oldName */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // char[] oldName
         7: .line 469
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 4
        end local 6 // int l
        end local 5 // int i
         9: .line 475
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 5 /* categoryNames */
        start local 5 // char[][] categoryNames
        10: .line 476
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: aload 5 /* categoryNames */
            arraylength
            istore 7 /* l */
        start local 7 // int l
        12: goto 16
        13: .line 477
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.core.index.DiskIndex int[] java.io.FileOutputStream char[][] char[][] int int
      StackMap stack:
            aload 5 /* categoryNames */
            iload 6 /* i */
            aaload
            ifnull 15
        14: .line 478
            aload 0 /* this */
            aload 5 /* categoryNames */
            iload 6 /* i */
            aaload
            aload 1 /* onDisk */
            aload 2 /* positions */
            aload 3 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.mergeCategory:([CLorg/eclipse/jdt/internal/core/index/DiskIndex;[ILjava/io/FileOutputStream;)V
        15: .line 476
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            iload 7 /* l */
            if_icmplt 13
        end local 7 // int l
        end local 6 // int i
        17: .line 479
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
        18: .line 480
            return
        end local 5 // char[][] categoryNames
        end local 4 // char[][] oldNames
        end local 3 // java.io.FileOutputStream stream
        end local 2 // int[] positions
        end local 1 // org.eclipse.jdt.internal.core.index.DiskIndex onDisk
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   19     1         onDisk  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   19     2      positions  [I
            0   19     3         stream  Ljava/io/FileOutputStream;
            1   19     4       oldNames  [[C
            2    9     5              i  I
            3    9     6              l  I
            5    7     7        oldName  [C
           10   19     5  categoryNames  [[C
           11   17     6              i  I
           12   17     7              l  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      onDisk     
      positions  
      stream     

  private void mergeCategory(char[], org.eclipse.jdt.internal.core.index.DiskIndex, int[], java.io.FileOutputStream);
    descriptor: ([CLorg/eclipse/jdt/internal/core/index/DiskIndex;[ILjava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=19, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // char[] categoryName
        start local 2 // org.eclipse.jdt.internal.core.index.DiskIndex onDisk
        start local 3 // int[] positions
        start local 4 // java.io.FileOutputStream stream
         0: .line 482
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 1 /* categoryName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            astore 5 /* wordsToDocs */
        start local 5 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocs
         1: .line 483
            aload 5 /* wordsToDocs */
            ifnonnull 3
         2: .line 484
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            astore 5 /* wordsToDocs */
         3: .line 486
      StackMap locals: org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 2 /* onDisk */
            aload 1 /* categoryName */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable:([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            astore 6 /* oldWordsToDocs */
        start local 6 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject oldWordsToDocs
         4: .line 487
            aload 6 /* oldWordsToDocs */
            ifnull 44
         5: .line 488
            aload 6 /* oldWordsToDocs */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 7 /* oldWords */
        start local 7 // char[][] oldWords
         6: .line 489
            aload 6 /* oldWordsToDocs */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 8 /* oldArrayOffsets */
        start local 8 // java.lang.Object[] oldArrayOffsets
         7: .line 490
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: aload 7 /* oldWords */
            arraylength
            istore 10 /* l */
        start local 10 // int l
         9: goto 42
        10: .line 491
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] org.eclipse.jdt.internal.core.index.DiskIndex int[] java.io.FileOutputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[] int int
      StackMap stack:
            aload 7 /* oldWords */
            iload 9 /* i */
            aaload
            astore 11 /* oldWord */
        start local 11 // char[] oldWord
        11: .line 492
            aload 11 /* oldWord */
            ifnull 41
        12: .line 493
            aload 8 /* oldArrayOffsets */
            iload 9 /* i */
            aaload
            checkcast int[]
            astore 12 /* oldDocNumbers */
        start local 12 // int[] oldDocNumbers
        13: .line 494
            aload 12 /* oldDocNumbers */
            arraylength
            istore 13 /* length */
        start local 13 // int length
        14: .line 495
            iload 13 /* length */
            newarray 10
            astore 14 /* mappedNumbers */
        start local 14 // int[] mappedNumbers
        15: .line 496
            iconst_0
            istore 15 /* count */
        start local 15 // int count
        16: .line 497
            iconst_0
            istore 16 /* j */
        start local 16 // int j
        17: goto 22
        18: .line 498
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] org.eclipse.jdt.internal.core.index.DiskIndex int[] java.io.FileOutputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[] int int char[] int[] int int[] int int
      StackMap stack:
            aload 3 /* positions */
            aload 12 /* oldDocNumbers */
            iload 16 /* j */
            iaload
            iaload
            istore 17 /* pos */
        start local 17 // int pos
        19: .line 499
            iload 17 /* pos */
            iconst_m1
            if_icmple 21
        20: .line 500
            aload 14 /* mappedNumbers */
            iload 15 /* count */
            iinc 15 /* count */ 1
            iload 17 /* pos */
            iastore
        end local 17 // int pos
        21: .line 497
      StackMap locals:
      StackMap stack:
            iinc 16 /* j */ 1
      StackMap locals:
      StackMap stack:
        22: iload 16 /* j */
            iload 13 /* length */
            if_icmplt 18
        end local 16 // int j
        23: .line 502
            iload 15 /* count */
            iload 13 /* length */
            if_icmpge 26
        24: .line 503
            iload 15 /* count */
            ifne 25
            goto 41
        25: .line 504
      StackMap locals:
      StackMap stack:
            aload 14 /* mappedNumbers */
            iconst_0
            iload 15 /* count */
            newarray 10
            dup
            astore 14 /* mappedNumbers */
            iconst_0
            iload 15 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        26: .line 507
      StackMap locals:
      StackMap stack:
            aload 5 /* wordsToDocs */
            aload 11 /* oldWord */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            astore 16 /* o */
        start local 16 // java.lang.Object o
        27: .line 508
            aload 16 /* o */
            ifnonnull 30
        28: .line 509
            aload 5 /* wordsToDocs */
            aload 11 /* oldWord */
            aload 14 /* mappedNumbers */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely:([CLjava/lang/Object;)V
        29: .line 510
            goto 41
        30: .line 511
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            astore 17 /* list */
        start local 17 // org.eclipse.jdt.internal.core.index.DiskIndex$IntList list
        31: .line 512
            aload 16 /* o */
            instanceof org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            ifeq 34
        32: .line 513
            aload 16 /* o */
            checkcast org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            astore 17 /* list */
        33: .line 514
            goto 36
        34: .line 515
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex$IntList
      StackMap stack:
            new org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            dup
            aload 16 /* o */
            checkcast int[]
            invokespecial org.eclipse.jdt.internal.core.index.DiskIndex$IntList.<init>:([I)V
            astore 17 /* list */
        35: .line 516
            aload 5 /* wordsToDocs */
            aload 11 /* oldWord */
            aload 17 /* list */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 518
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 18 /* j */
        start local 18 // int j
        37: goto 40
        38: .line 519
      StackMap locals: int
      StackMap stack:
            aload 17 /* list */
            aload 14 /* mappedNumbers */
            iload 18 /* j */
            iaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex$IntList.add:(I)V
        39: .line 518
            iinc 18 /* j */ 1
      StackMap locals:
      StackMap stack:
        40: iload 18 /* j */
            iload 15 /* count */
            if_icmplt 38
        end local 18 // int j
        end local 17 // org.eclipse.jdt.internal.core.index.DiskIndex$IntList list
        end local 16 // java.lang.Object o
        end local 15 // int count
        end local 14 // int[] mappedNumbers
        end local 13 // int length
        end local 12 // int[] oldDocNumbers
        end local 11 // char[] oldWord
        41: .line 490
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] org.eclipse.jdt.internal.core.index.DiskIndex int[] java.io.FileOutputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] java.lang.Object[] int int
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 9 /* i */
            iload 10 /* l */
            if_icmplt 10
        end local 10 // int l
        end local 9 // int i
        43: .line 523
            aload 2 /* onDisk */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 1 /* categoryName */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.Object[] oldArrayOffsets
        end local 7 // char[][] oldWords
        44: .line 525
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] org.eclipse.jdt.internal.core.index.DiskIndex int[] java.io.FileOutputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject org.eclipse.jdt.internal.compiler.util.HashtableOfObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* categoryName */
            aload 5 /* wordsToDocs */
            aload 4 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeCategoryTable:([CLorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;Ljava/io/FileOutputStream;)V
        45: .line 526
            return
        end local 6 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject oldWordsToDocs
        end local 5 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocs
        end local 4 // java.io.FileOutputStream stream
        end local 3 // int[] positions
        end local 2 // org.eclipse.jdt.internal.core.index.DiskIndex onDisk
        end local 1 // char[] categoryName
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   46     0             this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   46     1     categoryName  [C
            0   46     2           onDisk  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   46     3        positions  [I
            0   46     4           stream  Ljava/io/FileOutputStream;
            1   46     5      wordsToDocs  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            4   46     6   oldWordsToDocs  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            6   44     7         oldWords  [[C
            7   44     8  oldArrayOffsets  [Ljava/lang/Object;
            8   43     9                i  I
            9   43    10                l  I
           11   41    11          oldWord  [C
           13   41    12    oldDocNumbers  [I
           14   41    13           length  I
           15   41    14    mappedNumbers  [I
           16   41    15            count  I
           17   23    16                j  I
           19   21    17              pos  I
           27   41    16                o  Ljava/lang/Object;
           31   41    17             list  Lorg/eclipse/jdt/internal/core/index/DiskIndex$IntList;
           37   41    18                j  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      categoryName  
      onDisk        
      positions     
      stream        

  org.eclipse.jdt.internal.core.index.DiskIndex mergeWith(org.eclipse.jdt.internal.core.index.MemoryIndex);
    descriptor: (Lorg/eclipse/jdt/internal/core/index/MemoryIndex;)Lorg/eclipse/jdt/internal/core/index/DiskIndex;
    flags: (0x0000) 
    Code:
      stack=7, locals=18, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
         0: .line 530
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            ifnonnull 2
         1: .line 531
            new java.io.IOException
            dup
            ldc "Pre-built index file not writeable"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readAllDocumentNames:()[Ljava/lang/String;
            astore 2 /* docNames */
        start local 2 // java.lang.String[] docNames
         3: .line 534
            aload 2 /* docNames */
            arraylength
            istore 3 /* previousLength */
        start local 3 // int previousLength
         4: .line 535
            iload 3 /* previousLength */
            newarray 10
            astore 4 /* positions */
        start local 4 // int[] positions
         5: .line 536
            new org.eclipse.jdt.internal.compiler.util.SimpleLookupTable
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.<init>:(I)V
            astore 5 /* indexedDocuments */
        start local 5 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable indexedDocuments
         6: .line 537
            aload 0 /* this */
            aload 2 /* docNames */
            aload 4 /* positions */
            aload 5 /* indexedDocuments */
            aload 1 /* memoryIndex */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.computeDocumentNames:([Ljava/lang/String;[ILorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;Lorg/eclipse/jdt/internal/core/index/MemoryIndex;)[Ljava/lang/String;
            astore 2 /* docNames */
         7: .line 538
            aload 2 /* docNames */
            arraylength
            ifne 12
         8: .line 539
            iload 3 /* previousLength */
            ifne 9
            aload 0 /* this */
            areturn
         9: .line 542
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.core.index.MemoryIndex java.lang.String[] int int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable
      StackMap stack:
            new org.eclipse.jdt.internal.core.index.DiskIndex
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokespecial org.eclipse.jdt.internal.core.index.DiskIndex.<init>:(Lorg/eclipse/jdt/internal/core/index/IndexLocation;)V
            astore 6 /* newDiskIndex */
        start local 6 // org.eclipse.jdt.internal.core.index.DiskIndex newDiskIndex
        10: .line 543
            aload 6 /* newDiskIndex */
            iconst_0
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.initialize:(Z)V
        11: .line 544
            aload 6 /* newDiskIndex */
            areturn
        end local 6 // org.eclipse.jdt.internal.core.index.DiskIndex newDiskIndex
        12: .line 546
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* usingTmp */
        start local 6 // boolean usingTmp
        13: .line 547
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getIndexFile:()Ljava/io/File;
            astore 7 /* oldIndexFile */
        start local 7 // java.io.File oldIndexFile
        14: .line 548
            aload 7 /* oldIndexFile */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 8 /* indexFilePath */
        start local 8 // java.lang.String indexFilePath
        15: .line 549
            aload 8 /* indexFilePath */
            ldc ".tmp"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 19
        16: .line 550
            aload 8 /* indexFilePath */
            iconst_0
            aload 8 /* indexFilePath */
            invokevirtual java.lang.String.length:()I
            ldc ".tmp"
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* indexFilePath */
        17: .line 551
            iconst_1
            istore 6 /* usingTmp */
        18: .line 552
            goto 20
        19: .line 553
      StackMap locals: int java.io.File java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 8 /* indexFilePath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".tmp"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* indexFilePath */
        20: .line 555
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.core.index.DiskIndex
            dup
            new org.eclipse.jdt.internal.core.index.FileIndexLocation
            dup
            new java.io.File
            dup
            aload 8 /* indexFilePath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial org.eclipse.jdt.internal.core.index.FileIndexLocation.<init>:(Ljava/io/File;)V
            invokespecial org.eclipse.jdt.internal.core.index.DiskIndex.<init>:(Lorg/eclipse/jdt/internal/core/index/IndexLocation;)V
            astore 9 /* newDiskIndex */
        start local 9 // org.eclipse.jdt.internal.core.index.DiskIndex newDiskIndex
        21: .line 556
            aload 9 /* newDiskIndex */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getIndexFile:()Ljava/io/File;
            astore 10 /* newIndexFile */
        start local 10 // java.io.File newIndexFile
        22: .line 558
            aload 9 /* newDiskIndex */
            aload 0 /* this */
            aload 10 /* newIndexFile */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.initializeFrom:(Lorg/eclipse/jdt/internal/core/index/DiskIndex;Ljava/io/File;)V
        23: .line 559
            new java.io.FileOutputStream
            dup
            aload 10 /* newIndexFile */
            iconst_0
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
            astore 11 /* stream */
        start local 11 // java.io.FileOutputStream stream
        24: .line 560
            iconst_m1
            istore 12 /* offsetToHeader */
        start local 12 // int offsetToHeader
        25: .line 562
            aload 9 /* newDiskIndex */
            aload 2 /* docNames */
            aload 11 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeAllDocumentNames:([Ljava/lang/String;Ljava/io/FileOutputStream;)V
        26: .line 563
            aconst_null
            astore 2 /* docNames */
        27: .line 566
            aload 5 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.elementSize:I
            ifle 39
        28: .line 567
            aload 5 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 13 /* names */
        start local 13 // java.lang.Object[] names
        29: .line 568
            aload 5 /* indexedDocuments */
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.valueTable:[Ljava/lang/Object;
            astore 14 /* integerPositions */
        start local 14 // java.lang.Object[] integerPositions
        30: .line 569
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        31: aload 13 /* names */
            arraylength
            istore 16 /* l */
        start local 16 // int l
        32: goto 38
        33: .line 570
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.core.index.MemoryIndex java.lang.String[] int int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable int java.io.File java.lang.String org.eclipse.jdt.internal.core.index.DiskIndex java.io.File java.io.FileOutputStream int java.lang.Object[] java.lang.Object[] int int
      StackMap stack:
            aload 13 /* names */
            iload 15 /* i */
            aaload
            ifnull 37
        34: .line 571
            aload 9 /* newDiskIndex */
        35: .line 572
            aload 1 /* memoryIndex */
            getfield org.eclipse.jdt.internal.core.index.MemoryIndex.docsToReferences:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            aload 13 /* names */
            iload 15 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            aload 14 /* integerPositions */
            iload 15 /* i */
            aaload
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        36: .line 571
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.copyQueryResults:(Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;I)V
        37: .line 569
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 15 /* i */
            iload 16 /* l */
            if_icmplt 33
        end local 16 // int l
        end local 15 // int i
        end local 14 // java.lang.Object[] integerPositions
        end local 13 // java.lang.Object[] names
        39: .line 574
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.core.index.MemoryIndex java.lang.String[] int int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable int java.io.File java.lang.String org.eclipse.jdt.internal.core.index.DiskIndex java.io.File java.io.FileOutputStream int
      StackMap stack:
            aconst_null
            astore 5 /* indexedDocuments */
        40: .line 577
            iload 3 /* previousLength */
            ifne 42
        41: .line 578
            aload 9 /* newDiskIndex */
            aload 11 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeCategories:(Ljava/io/FileOutputStream;)V
            goto 43
        42: .line 580
      StackMap locals:
      StackMap stack:
            aload 9 /* newDiskIndex */
            aload 0 /* this */
            aload 4 /* positions */
            aload 11 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.mergeCategories:(Lorg/eclipse/jdt/internal/core/index/DiskIndex;[ILjava/io/FileOutputStream;)V
        43: .line 581
      StackMap locals:
      StackMap stack:
            aload 9 /* newDiskIndex */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            istore 12 /* offsetToHeader */
        44: .line 582
            aload 9 /* newDiskIndex */
            aload 11 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeHeaderInfo:(Ljava/io/FileOutputStream;)V
        45: .line 583
            aconst_null
            astore 4 /* positions */
        46: .line 584
            goto 51
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 17
        48: .line 585
            aload 11 /* stream */
            invokevirtual java.io.FileOutputStream.close:()V
        49: .line 586
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        50: .line 587
            aload 17
            athrow
        51: .line 585
      StackMap locals:
      StackMap stack:
            aload 11 /* stream */
            invokevirtual java.io.FileOutputStream.close:()V
        52: .line 586
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        53: .line 588
            aload 9 /* newDiskIndex */
            iload 12 /* offsetToHeader */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeOffsetToHeader:(I)V
        54: .line 591
            aload 7 /* oldIndexFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 58
            aload 7 /* oldIndexFile */
            invokevirtual java.io.File.delete:()Z
            ifne 58
        55: .line 592
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 57
        56: .line 593
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "mergeWith - Failed to delete "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        57: .line 594
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to delete index file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 596
      StackMap locals:
      StackMap stack:
            iload 6 /* usingTmp */
            ifne 72
            aload 10 /* newIndexFile */
            aload 7 /* oldIndexFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 72
        59: .line 599
            ldc 2
            invokestatic java.lang.Thread.sleep:(J)V
        60: .line 600
            goto 62
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        61: pop
        62: .line 603
      StackMap locals:
      StackMap stack:
            aload 10 /* newIndexFile */
            aload 7 /* oldIndexFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 72
        63: .line 604
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 65
        64: .line 605
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "mergeWith - Failed to rename "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        65: .line 606
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* usingTmp */
        end local 12 // int offsetToHeader
        end local 11 // java.io.FileOutputStream stream
        66: .line 609
            goto 72
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex org.eclipse.jdt.internal.core.index.MemoryIndex java.lang.String[] int int[] org.eclipse.jdt.internal.compiler.util.SimpleLookupTable int java.io.File java.lang.String org.eclipse.jdt.internal.core.index.DiskIndex java.io.File
      StackMap stack: java.io.IOException
        67: astore 11 /* e */
        start local 11 // java.io.IOException e
        68: .line 610
            aload 10 /* newIndexFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 71
            aload 10 /* newIndexFile */
            invokevirtual java.io.File.delete:()Z
            ifne 71
        69: .line 611
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 71
        70: .line 612
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "mergeWith - Failed to delete temp index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* newDiskIndex */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        71: .line 613
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 11 /* e */
            athrow
        end local 11 // java.io.IOException e
        72: .line 616
      StackMap locals:
      StackMap stack:
            iload 6 /* usingTmp */
            ifne 74
        73: .line 617
            aload 9 /* newDiskIndex */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
        74: .line 618
      StackMap locals:
      StackMap stack:
            aload 9 /* newDiskIndex */
            areturn
        end local 10 // java.io.File newIndexFile
        end local 9 // org.eclipse.jdt.internal.core.index.DiskIndex newDiskIndex
        end local 8 // java.lang.String indexFilePath
        end local 7 // java.io.File oldIndexFile
        end local 6 // boolean usingTmp
        end local 5 // org.eclipse.jdt.internal.compiler.util.SimpleLookupTable indexedDocuments
        end local 4 // int[] positions
        end local 3 // int previousLength
        end local 2 // java.lang.String[] docNames
        end local 1 // org.eclipse.jdt.internal.core.index.MemoryIndex memoryIndex
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   75     0              this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   75     1       memoryIndex  Lorg/eclipse/jdt/internal/core/index/MemoryIndex;
            3   75     2          docNames  [Ljava/lang/String;
            4   75     3    previousLength  I
            5   75     4         positions  [I
            6   75     5  indexedDocuments  Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
           10   12     6      newDiskIndex  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
           13   75     6          usingTmp  Z
           14   75     7      oldIndexFile  Ljava/io/File;
           15   75     8     indexFilePath  Ljava/lang/String;
           21   75     9      newDiskIndex  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
           22   75    10      newIndexFile  Ljava/io/File;
           24   66    11            stream  Ljava/io/FileOutputStream;
           25   66    12    offsetToHeader  I
           29   39    13             names  [Ljava/lang/Object;
           30   39    14  integerPositions  [Ljava/lang/Object;
           31   39    15                 i  I
           32   39    16                 l  I
           68   72    11                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          25    47      47  any
          59    60      61  Class java.lang.InterruptedException
          22    66      67  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      memoryIndex  

  private synchronized java.lang.String[] readAllDocumentNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
         0: .line 621
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            ifgt 2
         1: .line 622
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_STRINGS:[Ljava/lang/String;
            areturn
         2: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 1 /* stream */
        start local 1 // java.io.InputStream stream
         3: .line 626
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iconst_0
            iaload
            istore 2 /* offset */
        start local 2 // int offset
         4: .line 627
            aload 1 /* stream */
            iload 2 /* offset */
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
         5: .line 628
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
         6: .line 629
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         7: .line 630
            aload 0 /* this */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
         8: .line 631
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            iconst_1
            isub
            istore 3 /* lastIndex */
        start local 3 // int lastIndex
         9: .line 632
            iload 3 /* lastIndex */
            bipush 100
            imul
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
            iadd
            anewarray java.lang.String
            astore 4 /* docNames */
        start local 4 // java.lang.String[] docNames
        10: .line 633
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        11: goto 16
        12: .line 634
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream int int java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* docNames */
            aload 1 /* stream */
            iload 5 /* i */
            bipush 100
            imul
            iload 5 /* i */
            iload 3 /* lastIndex */
            if_icmpge 13
            bipush 100
            goto 14
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream int int java.lang.String[] int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.InputStream int
        13: aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream int int java.lang.String[] int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.InputStream int int
        14: invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readChunk:([Ljava/lang/String;Ljava/io/InputStream;II)V
        15: .line 633
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            if_icmplt 12
        end local 5 // int i
        17: .line 635
            aload 4 /* docNames */
            astore 7
        18: .line 637
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        19: .line 638
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        20: .line 639
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        21: .line 635
            aload 7
            areturn
        end local 4 // java.lang.String[] docNames
        end local 3 // int lastIndex
        end local 2 // int offset
        22: .line 636
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 6
        23: .line 637
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        24: .line 638
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        25: .line 639
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        26: .line 640
            aload 6
            athrow
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            3   27     1     stream  Ljava/io/InputStream;
            4   22     2     offset  I
            9   22     3  lastIndex  I
           10   22     4   docNames  [Ljava/lang/String;
           11   17     5          i  I
      Exception table:
        from    to  target  type
           3    18      22  any
    Exceptions:
      throws java.io.IOException

  private synchronized org.eclipse.jdt.internal.compiler.util.HashtableOfObject readCategoryTable(char[], boolean);
    descriptor: ([CZ)Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // char[] categoryName
        start local 2 // boolean readDocNumbers
         0: .line 644
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            aload 1 /* categoryName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.get:([C)I
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 645
            iload 3 /* offset */
            ldc -2147483648
            if_icmpne 3
         2: .line 646
            aconst_null
            areturn
         3: .line 649
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            ifnonnull 6
         4: .line 650
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
         5: .line 651
            goto 18
         6: .line 652
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 1 /* categoryName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            astore 4 /* cachedTable */
        start local 4 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject cachedTable
         7: .line 653
            aload 4 /* cachedTable */
            ifnull 18
         8: .line 654
            iload 2 /* readDocNumbers */
            ifeq 17
         9: .line 655
            aload 4 /* cachedTable */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 5 /* arrayOffsets */
        start local 5 // java.lang.Object[] arrayOffsets
        10: .line 656
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: aload 5 /* arrayOffsets */
            arraylength
            istore 7 /* l */
        start local 7 // int l
        12: goto 16
        13: .line 657
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] int int org.eclipse.jdt.internal.compiler.util.HashtableOfObject java.lang.Object[] int int
      StackMap stack:
            aload 5 /* arrayOffsets */
            iload 6 /* i */
            aaload
            instanceof java.lang.Integer
            ifeq 15
        14: .line 658
            aload 5 /* arrayOffsets */
            iload 6 /* i */
            aload 0 /* this */
            aload 5 /* arrayOffsets */
            iload 6 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readDocumentNumbers:(Ljava/lang/Object;)[I
            aastore
        15: .line 656
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            iload 7 /* l */
            if_icmplt 13
        end local 7 // int l
        end local 6 // int i
        end local 5 // java.lang.Object[] arrayOffsets
        17: .line 660
      StackMap locals:
      StackMap stack:
            aload 4 /* cachedTable */
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject cachedTable
        18: .line 664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 4 /* stream */
        start local 4 // java.io.InputStream stream
        19: .line 665
            aconst_null
            astore 5 /* categoryTable */
        start local 5 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject categoryTable
        20: .line 666
            aconst_null
            astore 6 /* matchingWords */
        start local 6 // char[][] matchingWords
        21: .line 667
            iconst_0
            istore 7 /* count */
        start local 7 // int count
        22: .line 668
            iconst_m1
            istore 8 /* firstOffset */
        start local 8 // int firstOffset
        23: .line 669
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        24: .line 671
            aload 4 /* stream */
            iload 3 /* offset */
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
        25: .line 672
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        26: .line 673
            aload 0 /* this */
            aload 4 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
        27: .line 674
            aload 0 /* this */
            aload 4 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            istore 9 /* size */
        start local 9 // int size
        28: .line 676
            iload 9 /* size */
            ifge 34
        29: .line 677
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "-------------------- DEBUG --------------------"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        30: .line 678
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "file = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        31: .line 679
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "offset = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* offset */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 680
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "size = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 681
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "--------------------   END   --------------------"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 683
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] int int java.io.InputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] int int int
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iload 9 /* size */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            astore 5 /* categoryTable */
        35: .line 684
            goto 44
      StackMap locals:
      StackMap stack: java.lang.OutOfMemoryError
        36: astore 10 /* oom */
        start local 10 // java.lang.OutOfMemoryError oom
        37: .line 686
            aload 10 /* oom */
            invokevirtual java.lang.OutOfMemoryError.printStackTrace:()V
        38: .line 687
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "-------------------- DEBUG --------------------"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        39: .line 688
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "file = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        40: .line 689
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "offset = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* offset */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        41: .line 690
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "size = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        42: .line 691
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "--------------------   END   --------------------"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        43: .line 692
            aload 10 /* oom */
            athrow
        end local 10 // java.lang.OutOfMemoryError oom
        44: .line 694
      StackMap locals:
      StackMap stack:
            sipush 256
            istore 10 /* largeArraySize */
        start local 10 // int largeArraySize
        45: .line 695
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        46: goto 64
        47: .line 696
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 4 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamChars:(Ljava/io/InputStream;)[C
            astore 12 /* word */
        start local 12 // char[] word
        48: .line 697
            aload 0 /* this */
            aload 4 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            istore 13 /* arrayOffset */
        start local 13 // int arrayOffset
        49: .line 702
            iload 13 /* arrayOffset */
            ifgt 52
        50: .line 703
            aload 5 /* categoryTable */
            aload 12 /* word */
            iconst_1
            newarray 10
            dup
            iconst_0
            iload 13 /* arrayOffset */
            ineg
            iastore
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely:([CLjava/lang/Object;)V
        51: .line 704
            goto 63
      StackMap locals: char[] int
      StackMap stack:
        52: iload 13 /* arrayOffset */
            iload 10 /* largeArraySize */
            if_icmpge 55
        53: .line 705
            aload 5 /* categoryTable */
            aload 12 /* word */
            aload 0 /* this */
            aload 4 /* stream */
            iload 13 /* arrayOffset */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamDocumentArray:(Ljava/io/InputStream;I)[I
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely:([CLjava/lang/Object;)V
        54: .line 706
            goto 63
        55: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            istore 13 /* arrayOffset */
        56: .line 708
            iload 2 /* readDocNumbers */
            ifeq 62
        57: .line 709
            aload 6 /* matchingWords */
            ifnonnull 59
        58: .line 710
            iload 9 /* size */
            anewarray char[]
            astore 6 /* matchingWords */
        59: .line 711
      StackMap locals:
      StackMap stack:
            iload 7 /* count */
            ifne 61
        60: .line 712
            iload 13 /* arrayOffset */
            istore 8 /* firstOffset */
        61: .line 713
      StackMap locals:
      StackMap stack:
            aload 6 /* matchingWords */
            iload 7 /* count */
            iinc 7 /* count */ 1
            aload 12 /* word */
            aastore
        62: .line 715
      StackMap locals:
      StackMap stack:
            aload 5 /* categoryTable */
            aload 12 /* word */
            iload 13 /* arrayOffset */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.putUnsafely:([CLjava/lang/Object;)V
        end local 13 // int arrayOffset
        end local 12 // char[] word
        63: .line 695
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 11 /* i */
            iload 9 /* size */
            if_icmplt 47
        end local 11 // int i
        65: .line 718
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.INTERNED_CATEGORY_NAMES:Lorg/eclipse/jdt/internal/compiler/util/SimpleSetOfCharArray;
            aload 1 /* categoryName */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSetOfCharArray.get:([C)[C
            aload 5 /* categoryTable */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        66: .line 721
            aload 0 /* this */
            aload 5 /* categoryTable */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.elementSize:I
            sipush 20000
            if_icmpge 67
            aload 1 /* categoryName */
            goto 68
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] int int java.io.InputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] int int int int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex
        67: aconst_null
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] int int java.io.InputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] int int int int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex char[]
        68: putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedCategoryName:[C
        end local 10 // int largeArraySize
        end local 9 // int size
        69: .line 722
            goto 77
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] int int java.io.InputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] int int
      StackMap stack: java.io.IOException
        70: astore 9 /* ioe */
        start local 9 // java.io.IOException ioe
        71: .line 723
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        72: .line 724
            aload 9 /* ioe */
            athrow
        end local 9 // java.io.IOException ioe
        73: .line 725
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        74: .line 726
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        75: .line 727
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        76: .line 728
            aload 14
            athrow
        77: .line 726
      StackMap locals:
      StackMap stack:
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        78: .line 727
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        79: .line 730
            aload 6 /* matchingWords */
            ifnull 99
            iload 7 /* count */
            ifle 99
        80: .line 731
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 4 /* stream */
        81: .line 733
            aload 4 /* stream */
            iload 8 /* firstOffset */
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
        82: .line 734
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        83: .line 735
            aload 0 /* this */
            aload 4 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
        84: .line 736
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        85: goto 88
        86: .line 737
      StackMap locals: int
      StackMap stack:
            aload 5 /* categoryTable */
            aload 6 /* matchingWords */
            iload 9 /* i */
            aaload
            aload 0 /* this */
            aload 4 /* stream */
            aload 0 /* this */
            aload 4 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamDocumentArray:(Ljava/io/InputStream;I)[I
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        87: .line 736
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        88: iload 9 /* i */
            iload 7 /* count */
            if_icmplt 86
        end local 9 // int i
        89: .line 739
            goto 97
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] int int java.io.InputStream org.eclipse.jdt.internal.compiler.util.HashtableOfObject char[][] int int
      StackMap stack: java.io.IOException
        90: astore 9 /* ioe */
        start local 9 // java.io.IOException ioe
        91: .line 740
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        92: .line 741
            aload 9 /* ioe */
            athrow
        end local 9 // java.io.IOException ioe
        93: .line 742
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        94: .line 743
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        95: .line 744
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        96: .line 745
            aload 10
            athrow
        97: .line 743
      StackMap locals:
      StackMap stack:
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        98: .line 744
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        99: .line 747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
       100: .line 748
            aload 5 /* categoryTable */
            areturn
        end local 8 // int firstOffset
        end local 7 // int count
        end local 6 // char[][] matchingWords
        end local 5 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject categoryTable
        end local 4 // java.io.InputStream stream
        end local 3 // int offset
        end local 2 // boolean readDocNumbers
        end local 1 // char[] categoryName
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  101     0            this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0  101     1    categoryName  [C
            0  101     2  readDocNumbers  Z
            1  101     3          offset  I
            7   18     4     cachedTable  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           10   17     5    arrayOffsets  [Ljava/lang/Object;
           11   17     6               i  I
           12   17     7               l  I
           19  101     4          stream  Ljava/io/InputStream;
           20  101     5   categoryTable  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
           21  101     6   matchingWords  [[C
           22  101     7           count  I
           23  101     8     firstOffset  I
           28   69     9            size  I
           37   44    10             oom  Ljava/lang/OutOfMemoryError;
           45   69    10  largeArraySize  I
           46   65    11               i  I
           48   63    12            word  [C
           49   63    13     arrayOffset  I
           71   73     9             ioe  Ljava/io/IOException;
           85   89     9               i  I
           91   93     9             ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          28    35      36  Class java.lang.OutOfMemoryError
          24    69      70  Class java.io.IOException
          24    73      73  any
          81    89      90  Class java.io.IOException
          81    93      93  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      categoryName    
      readDocNumbers  

  private void readChunk(java.lang.String[], java.io.InputStream, int, int);
    descriptor: ([Ljava/lang/String;Ljava/io/InputStream;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.lang.String[] docNames
        start local 2 // java.io.InputStream stream
        start local 3 // int index
        start local 4 // int size
         0: .line 751
            new java.lang.String
            dup
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamChars:(Ljava/io/InputStream;)[C
            invokespecial java.lang.String.<init>:([C)V
            astore 5 /* current */
        start local 5 // java.lang.String current
         1: .line 752
            aload 1 /* docNames */
            iload 3 /* index */
            iinc 3 /* index */ 1
            aload 5 /* current */
            aastore
         2: .line 753
            iconst_1
            istore 6 /* i */
        start local 6 // int i
         3: goto 22
         4: .line 754
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 2 /* stream */
            ifnull 6
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_2
            iadd
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            if_icmplt 6
         5: .line 755
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamBuffer:(Ljava/io/InputStream;)V
         6: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            istore 7 /* start */
        start local 7 // int start
         7: .line 757
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            istore 8 /* end */
        start local 8 // int end
         8: .line 758
            new java.lang.String
            dup
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamChars:(Ljava/io/InputStream;)[C
            invokespecial java.lang.String.<init>:([C)V
            astore 9 /* next */
        start local 9 // java.lang.String next
         9: .line 759
            iload 7 /* start */
            ifle 16
        10: .line 760
            iload 8 /* end */
            ifle 14
        11: .line 761
            aload 5 /* current */
            invokevirtual java.lang.String.length:()I
            istore 10 /* length */
        start local 10 // int length
        12: .line 762
            new java.lang.StringBuilder
            dup
            aload 5 /* current */
            iconst_0
            iload 7 /* start */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* next */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* current */
            iload 10 /* length */
            iload 8 /* end */
            isub
            iload 10 /* length */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* next */
        end local 10 // int length
        13: .line 763
            goto 19
        14: .line 764
      StackMap locals: int int java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 5 /* current */
            iconst_0
            iload 7 /* start */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* next */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* next */
        15: .line 766
            goto 19
      StackMap locals:
      StackMap stack:
        16: iload 8 /* end */
            ifle 19
        17: .line 767
            aload 5 /* current */
            invokevirtual java.lang.String.length:()I
            istore 10 /* length */
        start local 10 // int length
        18: .line 768
            new java.lang.StringBuilder
            dup
            aload 9 /* next */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* current */
            iload 10 /* length */
            iload 8 /* end */
            isub
            iload 10 /* length */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* next */
        end local 10 // int length
        19: .line 770
      StackMap locals:
      StackMap stack:
            aload 1 /* docNames */
            iload 3 /* index */
            iinc 3 /* index */ 1
            aload 9 /* next */
            aastore
        20: .line 771
            aload 9 /* next */
            astore 5 /* current */
        end local 9 // java.lang.String next
        end local 8 // int end
        end local 7 // int start
        21: .line 753
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 6 /* i */
            iload 4 /* size */
            if_icmplt 4
        end local 6 // int i
        23: .line 773
            return
        end local 5 // java.lang.String current
        end local 4 // int size
        end local 3 // int index
        end local 2 // java.io.InputStream stream
        end local 1 // java.lang.String[] docNames
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   24     1  docNames  [Ljava/lang/String;
            0   24     2    stream  Ljava/io/InputStream;
            0   24     3     index  I
            0   24     4      size  I
            1   24     5   current  Ljava/lang/String;
            3   23     6         i  I
            7   21     7     start  I
            8   21     8       end  I
            9   21     9      next  Ljava/lang/String;
           12   13    10    length  I
           18   19    10    length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      docNames  
      stream    
      index     
      size      

  synchronized java.lang.String readDocumentName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // int docNumber
         0: .line 775
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
            ifnonnull 2
         1: .line 776
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            anewarray java.lang.String[]
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
         2: .line 778
      StackMap locals:
      StackMap stack:
            iload 1 /* docNumber */
            bipush 100
            idiv
            istore 2 /* chunkNumber */
        start local 2 // int chunkNumber
         3: .line 779
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
            iload 2 /* chunkNumber */
            aaload
            astore 3 /* chunk */
        start local 3 // java.lang.String[] chunk
         4: .line 780
            aload 3 /* chunk */
            ifnonnull 39
         5: .line 781
            iload 2 /* chunkNumber */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            iconst_1
            isub
            if_icmpne 6
            iconst_1
            goto 7
      StackMap locals: int java.lang.String[]
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* isLastChunk */
        start local 4 // boolean isLastChunk
         8: .line 782
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iload 2 /* chunkNumber */
            iaload
            istore 5 /* start */
        start local 5 // int start
         9: .line 783
            iload 4 /* isLastChunk */
            ifeq 10
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.startOfCategoryTables:I
            goto 11
      StackMap locals: int int
      StackMap stack:
        10: aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iload 2 /* chunkNumber */
            iconst_1
            iadd
            iaload
      StackMap locals:
      StackMap stack: int
        11: iload 5 /* start */
            isub
            istore 6 /* numberOfBytes */
        start local 6 // int numberOfBytes
        12: .line 784
            iload 6 /* numberOfBytes */
            ifge 14
        13: .line 785
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        14: .line 786
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* numberOfBytes */
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        15: .line 787
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        16: .line 788
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 7 /* file */
        start local 7 // java.io.InputStream file
        17: .line 790
            aload 7 /* file */
            iload 5 /* start */
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
        18: .line 791
            aload 7 /* file */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            iload 6 /* numberOfBytes */
            invokevirtual java.io.InputStream.read:([BII)I
            iload 6 /* numberOfBytes */
            if_icmpeq 27
        19: .line 792
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
        20: .line 793
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex int int java.lang.String[] int int int java.io.InputStream
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        21: .line 794
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        22: .line 795
            aload 8 /* ioe */
            athrow
        end local 8 // java.io.IOException ioe
        23: .line 796
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        24: .line 797
            aload 7 /* file */
            invokevirtual java.io.InputStream.close:()V
        25: .line 798
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        26: .line 799
            aload 9
            athrow
        27: .line 797
      StackMap locals:
      StackMap stack:
            aload 7 /* file */
            invokevirtual java.io.InputStream.close:()V
        28: .line 798
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        29: .line 800
            iload 4 /* isLastChunk */
            ifeq 30
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
            goto 31
      StackMap locals:
      StackMap stack:
        30: bipush 100
      StackMap locals:
      StackMap stack: int
        31: istore 8 /* numberOfNames */
        start local 8 // int numberOfNames
        32: .line 801
            iload 8 /* numberOfNames */
            anewarray java.lang.String
            astore 3 /* chunk */
        33: .line 803
            aload 0 /* this */
            aload 3 /* chunk */
            aconst_null
            iconst_0
            iload 8 /* numberOfNames */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readChunk:([Ljava/lang/String;Ljava/io/InputStream;II)V
        34: .line 804
            goto 38
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex int int java.lang.String[] int int int java.io.InputStream int
      StackMap stack: java.io.IOException
        35: astore 9 /* ioe */
        start local 9 // java.io.IOException ioe
        36: .line 805
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        37: .line 806
            aload 9 /* ioe */
            athrow
        end local 9 // java.io.IOException ioe
        38: .line 808
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
            iload 2 /* chunkNumber */
            aload 3 /* chunk */
            aastore
        end local 8 // int numberOfNames
        end local 7 // java.io.InputStream file
        end local 6 // int numberOfBytes
        end local 5 // int start
        end local 4 // boolean isLastChunk
        39: .line 810
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex int int java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        40: .line 811
            aload 3 /* chunk */
            iload 1 /* docNumber */
            iload 2 /* chunkNumber */
            bipush 100
            imul
            isub
            aaload
            areturn
        end local 3 // java.lang.String[] chunk
        end local 2 // int chunkNumber
        end local 1 // int docNumber
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   41     0           this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   41     1      docNumber  I
            3   41     2    chunkNumber  I
            4   41     3          chunk  [Ljava/lang/String;
            8   39     4    isLastChunk  Z
            9   39     5          start  I
           12   39     6  numberOfBytes  I
           17   39     7           file  Ljava/io/InputStream;
           21   23     8            ioe  Ljava/io/IOException;
           32   39     8  numberOfNames  I
           36   38     9            ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          17    20      20  Class java.io.IOException
          17    23      23  any
          33    34      35  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      docNumber  

  synchronized int[] readDocumentNumbers(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[I
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.lang.Object arrayOffset
         0: .line 815
            aload 1 /* arrayOffset */
            instanceof int[]
            ifeq 2
         1: .line 816
            aload 1 /* arrayOffset */
            checkcast int[]
            areturn
         2: .line 818
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getInputStream:()Ljava/io/InputStream;
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         3: .line 820
            aload 1 /* arrayOffset */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* offset */
        start local 3 // int offset
         4: .line 821
            aload 2 /* stream */
            iload 3 /* offset */
            i2l
            invokevirtual java.io.InputStream.skip:(J)J
            pop2
         5: .line 822
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.BUFFER_READ_SIZE:I
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
         6: .line 823
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         7: .line 824
            aload 0 /* this */
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
         8: .line 825
            aload 0 /* this */
            aload 2 /* stream */
            aload 0 /* this */
            aload 2 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamDocumentArray:(Ljava/io/InputStream;I)[I
            astore 5
         9: .line 827
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
        10: .line 828
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        11: .line 829
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        12: .line 825
            aload 5
            areturn
        end local 3 // int offset
        13: .line 826
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.Object java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 827
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
        15: .line 828
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.close:()V
        16: .line 829
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
        17: .line 830
            aload 4
            athrow
        end local 2 // java.io.InputStream stream
        end local 1 // java.lang.Object arrayOffset
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   18     1  arrayOffset  Ljava/lang/Object;
            3   18     2       stream  Ljava/io/InputStream;
            4   13     3       offset  I
      Exception table:
        from    to  target  type
           3     9      13  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      arrayOffset  

  private void readHeaderInfo(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.InputStream stream
         0: .line 835
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
         1: .line 836
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
         2: .line 837
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.documentReferenceSize:I
         3: .line 838
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            i2c
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.separator:C
         4: .line 839
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.length:()J
            lstore 2 /* length */
        start local 2 // long length
         5: .line 840
            lload 2 /* length */
            ldc -1
            lcmp
            ifeq 9
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            i2l
            lload 2 /* length */
            lcmp
            ifle 9
         6: .line 842
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 8
         7: .line 843
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Index file is corrupted "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 844
      StackMap locals: long
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Index file is corrupted "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            newarray 10
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
        10: .line 847
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 14
        12: .line 848
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iload 4 /* i */
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            iastore
        13: .line 847
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            if_icmplt 12
        end local 4 // int i
        15: .line 850
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.startOfCategoryTables:I
        16: .line 852
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            istore 4 /* size */
        start local 4 // int size
        17: .line 853
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues
            dup
            iload 4 /* size */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
        18: .line 854
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues
            dup
            iload 4 /* size */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryEnds:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
        19: .line 855
            lload 2 /* length */
            ldc -1
            lcmp
            ifeq 23
            iload 4 /* size */
            i2l
            lload 2 /* length */
            lcmp
            ifle 23
        20: .line 857
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.DEBUG:Z
            ifeq 22
        21: .line 858
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Index file is corrupted "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 859
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Index file is corrupted "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 861
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* previousCategory */
        start local 5 // char[] previousCategory
        24: .line 862
            iconst_m1
            istore 6 /* offset */
        start local 6 // int offset
        25: .line 863
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        26: goto 34
        27: .line 864
      StackMap locals: char[] int int
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.INTERNED_CATEGORY_NAMES:Lorg/eclipse/jdt/internal/compiler/util/SimpleSetOfCharArray;
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamChars:(Ljava/io/InputStream;)[C
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSetOfCharArray.get:([C)[C
            astore 8 /* categoryName */
        start local 8 // char[] categoryName
        28: .line 865
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            istore 6 /* offset */
        29: .line 866
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            aload 8 /* categoryName */
            iload 6 /* offset */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.put:([CI)I
            pop
        30: .line 867
            aload 5 /* previousCategory */
            ifnull 32
        31: .line 868
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryEnds:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            aload 5 /* previousCategory */
            iload 6 /* offset */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.put:([CI)I
            pop
        32: .line 870
      StackMap locals: char[]
      StackMap stack:
            aload 8 /* categoryName */
            astore 5 /* previousCategory */
        end local 8 // char[] categoryName
        33: .line 863
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* i */
            iload 4 /* size */
            if_icmplt 27
        end local 7 // int i
        35: .line 872
            aload 5 /* previousCategory */
            ifnull 37
        36: .line 873
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryEnds:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            aload 5 /* previousCategory */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.put:([CI)I
            pop
        37: .line 875
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
        38: .line 876
            return
        end local 6 // int offset
        end local 5 // char[] previousCategory
        end local 4 // int size
        end local 2 // long length
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   39     0              this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   39     1            stream  Ljava/io/InputStream;
            5   39     2            length  J
           11   15     4                 i  I
           17   39     4              size  I
           24   39     5  previousCategory  [C
           25   39     6            offset  I
           26   35     7                 i  I
           28   33     8      categoryName  [C
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  synchronized void startQuery();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
         0: .line 878
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cacheUserCount:I
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cacheUserCount:I
         1: .line 879
            return
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;

  synchronized void stopQuery();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
         0: .line 881
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cacheUserCount:I
            iconst_1
            isub
            dup_x1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cacheUserCount:I
            ifge 11
         1: .line 883
            aload 0 /* this */
            iconst_m1
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cacheUserCount:I
         2: .line 884
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedChunks:[[Ljava/lang/String;
         3: .line 885
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            ifnull 11
         4: .line 886
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedCategoryName:[C
            ifnonnull 7
         5: .line 887
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
         6: .line 888
            goto 11
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.elementSize:I
            iconst_1
            if_icmple 11
         8: .line 889
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            astore 1 /* newTables */
        start local 1 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject newTables
         9: .line 890
            aload 1 /* newTables */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedCategoryName:[C
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.cachedCategoryName:[C
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.get:([C)Ljava/lang/Object;
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 891
            aload 0 /* this */
            aload 1 /* newTables */
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
        end local 1 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject newTables
        11: .line 895
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            9   11     1  newTables  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;

  private void readStreamBuffer(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.InputStream stream
         0: .line 899
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            if_icmpge 3
         1: .line 900
            aload 1 /* stream */
            invokevirtual java.io.InputStream.available:()I
            ifne 3
         2: .line 901
            return
         3: .line 904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            isub
            istore 2 /* bytesInBuffer */
        start local 2 // int bytesInBuffer
         4: .line 905
            iload 2 /* bytesInBuffer */
            ifle 6
         5: .line 906
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            iload 2 /* bytesInBuffer */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 907
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* bytesInBuffer */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iload 2 /* bytesInBuffer */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.InputStream.read:([BII)I
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
         7: .line 908
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         8: .line 909
            return
        end local 2 // int bytesInBuffer
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0    9     1         stream  Ljava/io/InputStream;
            4    9     2  bytesInBuffer  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private char[] readStreamChars(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)[C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.InputStream stream
         0: .line 932
            aload 1 /* stream */
            ifnull 2
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_2
            iadd
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            if_icmplt 2
         1: .line 933
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamBuffer:(Ljava/io/InputStream;)V
         2: .line 934
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            bipush 8
            ishl
            istore 2 /* length */
        start local 2 // int length
         3: .line 935
            iload 2 /* length */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            iadd
            istore 2 /* length */
         4: .line 938
            iload 2 /* length */
            newarray 5
            astore 3 /* word */
        start local 3 // char[] word
         5: .line 939
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: .line 940
            goto 35
         7: .line 942
      StackMap locals: int char[] int
      StackMap stack:
            iload 4 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            isub
            iconst_3
            idiv
            iadd
            istore 5 /* charsInBuffer */
        start local 5 // int charsInBuffer
         8: .line 944
            iload 5 /* charsInBuffer */
            iload 2 /* length */
            if_icmpgt 9
            aload 1 /* stream */
            ifnull 9
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            arraylength
            if_icmpeq 32
            aload 1 /* stream */
            invokevirtual java.io.InputStream.available:()I
            ifne 32
         9: .line 945
      StackMap locals: int
      StackMap stack:
            iload 2 /* length */
            istore 5 /* charsInBuffer */
        10: .line 946
            goto 32
        11: .line 947
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            istore 6 /* b */
        start local 6 // byte b
        12: .line 948
            iload 6 /* b */
            sipush 240
            iand
            lookupswitch { // 11
                    0: 13
                   16: 13
                   32: 13
                   48: 13
                   64: 13
                   80: 13
                   96: 13
                  112: 13
                  192: 15
                  208: 15
                  224: 22
              default: 31
          }
        13: .line 957
      StackMap locals: int
      StackMap stack:
            aload 3 /* word */
            iload 4 /* i */
            iinc 4 /* i */ 1
            iload 6 /* b */
            i2c
            castore
        14: .line 958
            goto 32
        15: .line 961
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            i2c
            istore 7 /* next */
        start local 7 // char next
        16: .line 962
            iload 7 /* next */
            sipush 192
            iand
            sipush 128
            if_icmpeq 18
        17: .line 963
            new java.io.UTFDataFormatException
            dup
            invokespecial java.io.UTFDataFormatException.<init>:()V
            athrow
        18: .line 965
      StackMap locals: int
      StackMap stack:
            iload 6 /* b */
            bipush 31
            iand
            bipush 6
            ishl
            i2c
            istore 8 /* ch */
        start local 8 // char ch
        19: .line 966
            iload 8 /* ch */
            iload 7 /* next */
            bipush 63
            iand
            ior
            i2c
            istore 8 /* ch */
        20: .line 967
            aload 3 /* word */
            iload 4 /* i */
            iinc 4 /* i */ 1
            iload 8 /* ch */
            castore
        21: .line 968
            goto 32
        end local 8 // char ch
        end local 7 // char next
        22: .line 970
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            i2c
            istore 9 /* first */
        start local 9 // char first
        23: .line 971
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            i2c
            istore 10 /* second */
        start local 10 // char second
        24: .line 972
            iload 9 /* first */
            iload 10 /* second */
            iand
            sipush 192
            iand
            sipush 128
            if_icmpeq 26
        25: .line 973
            new java.io.UTFDataFormatException
            dup
            invokespecial java.io.UTFDataFormatException.<init>:()V
            athrow
        26: .line 975
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream int char[] int int int top top int int
      StackMap stack:
            iload 6 /* b */
            bipush 15
            iand
            bipush 12
            ishl
            i2c
            istore 8 /* ch */
        start local 8 // char ch
        27: .line 976
            iload 8 /* ch */
            iload 9 /* first */
            bipush 63
            iand
            bipush 6
            ishl
            ior
            i2c
            istore 8 /* ch */
        28: .line 977
            iload 8 /* ch */
            iload 10 /* second */
            bipush 63
            iand
            ior
            i2c
            istore 8 /* ch */
        29: .line 978
            aload 3 /* word */
            iload 4 /* i */
            iinc 4 /* i */ 1
            iload 8 /* ch */
            castore
        30: .line 979
            goto 32
        end local 10 // char second
        end local 9 // char first
        end local 8 // char ch
        31: .line 981
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.InputStream int char[] int int int
      StackMap stack:
            new java.io.UTFDataFormatException
            dup
            invokespecial java.io.UTFDataFormatException.<init>:()V
            athrow
        end local 6 // byte b
        32: .line 946
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 5 /* charsInBuffer */
            if_icmplt 11
        33: .line 984
            iload 4 /* i */
            iload 2 /* length */
            if_icmpge 35
            aload 1 /* stream */
            ifnull 35
        34: .line 985
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamBuffer:(Ljava/io/InputStream;)V
        end local 5 // int charsInBuffer
        35: .line 940
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 2 /* length */
            if_icmplt 7
        36: .line 987
            aload 3 /* word */
            areturn
        end local 4 // int i
        end local 3 // char[] word
        end local 2 // int length
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   37     1         stream  Ljava/io/InputStream;
            3   37     2         length  I
            5   37     3           word  [C
            6   37     4              i  I
            8   35     5  charsInBuffer  I
           12   32     6              b  B
           16   22     7           next  C
           19   22     8             ch  C
           27   31     8             ch  C
           23   31     9          first  C
           24   31    10         second  C
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private int[] readStreamDocumentArray(java.io.InputStream, int);
    descriptor: (Ljava/io/InputStream;I)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.InputStream stream
        start local 2 // int arraySize
         0: .line 990
            iload 2 /* arraySize */
            newarray 10
            astore 3 /* indexes */
        start local 3 // int[] indexes
         1: .line 991
            iload 2 /* arraySize */
            ifne 2
            aload 3 /* indexes */
            areturn
         2: .line 993
      StackMap locals: int[]
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: .line 994
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.documentReferenceSize:I
            tableswitch { // 1 - 2
                    1: 4
                    2: 15
              default: 27
          }
         4: .line 996
      StackMap locals: int
      StackMap stack:
            goto 13
         5: .line 998
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            iadd
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            isub
            istore 5 /* bytesInBuffer */
        start local 5 // int bytesInBuffer
         6: .line 999
            iload 5 /* bytesInBuffer */
            iload 2 /* arraySize */
            if_icmple 10
         7: .line 1000
            iload 2 /* arraySize */
            istore 5 /* bytesInBuffer */
         8: .line 1001
            goto 10
         9: .line 1002
      StackMap locals: int
      StackMap stack:
            aload 3 /* indexes */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            iastore
        10: .line 1001
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 5 /* bytesInBuffer */
            if_icmplt 9
        11: .line 1004
            iload 4 /* i */
            iload 2 /* arraySize */
            if_icmpge 13
            aload 1 /* stream */
            ifnull 13
        12: .line 1005
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamBuffer:(Ljava/io/InputStream;)V
        end local 5 // int bytesInBuffer
        13: .line 996
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 2 /* arraySize */
            if_icmplt 5
        14: .line 1007
            goto 30
        15: .line 1009
      StackMap locals:
      StackMap stack:
            goto 25
        16: .line 1011
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            isub
            iconst_2
            idiv
            iadd
            istore 5 /* shortsInBuffer */
        start local 5 // int shortsInBuffer
        17: .line 1012
            iload 5 /* shortsInBuffer */
            iload 2 /* arraySize */
            if_icmple 22
        18: .line 1013
            iload 2 /* arraySize */
            istore 5 /* shortsInBuffer */
        19: .line 1014
            goto 22
        20: .line 1015
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            bipush 8
            ishl
            istore 6 /* val */
        start local 6 // int val
        21: .line 1016
            aload 3 /* indexes */
            iload 4 /* i */
            iinc 4 /* i */ 1
            iload 6 /* val */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            iadd
            iastore
        end local 6 // int val
        22: .line 1014
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 5 /* shortsInBuffer */
            if_icmplt 20
        23: .line 1018
            iload 4 /* i */
            iload 2 /* arraySize */
            if_icmpge 25
            aload 1 /* stream */
            ifnull 25
        24: .line 1019
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamBuffer:(Ljava/io/InputStream;)V
        end local 5 // int shortsInBuffer
        25: .line 1009
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 2 /* arraySize */
            if_icmplt 16
        26: .line 1021
            goto 30
        27: .line 1023
      StackMap locals:
      StackMap stack:
            goto 29
        28: .line 1024
      StackMap locals:
      StackMap stack:
            aload 3 /* indexes */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamInt:(Ljava/io/InputStream;)I
            iastore
        29: .line 1023
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 2 /* arraySize */
            if_icmplt 28
        30: .line 1028
      StackMap locals:
      StackMap stack:
            aload 3 /* indexes */
            areturn
        end local 4 // int i
        end local 3 // int[] indexes
        end local 2 // int arraySize
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   31     0            this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   31     1          stream  Ljava/io/InputStream;
            0   31     2       arraySize  I
            1   31     3         indexes  [I
            3   31     4               i  I
            6   13     5   bytesInBuffer  I
           17   25     5  shortsInBuffer  I
           21   22     6             val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      stream     
      arraySize  

  private int readStreamInt(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.InputStream stream
         0: .line 1031
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_4
            iadd
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferEnd:I
            if_icmplt 2
         1: .line 1032
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.readStreamBuffer:(Ljava/io/InputStream;)V
         2: .line 1034
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            bipush 24
            ishl
            istore 2 /* val */
        start local 2 // int val
         3: .line 1035
            iload 2 /* val */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            bipush 16
            ishl
            iadd
            istore 2 /* val */
         4: .line 1036
            iload 2 /* val */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            bipush 8
            ishl
            iadd
            istore 2 /* val */
         5: .line 1037
            iload 2 /* val */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            baload
            sipush 255
            iand
            iadd
            ireturn
        end local 2 // int val
        end local 1 // java.io.InputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0    6     1  stream  Ljava/io/InputStream;
            3    6     2     val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private void writeAllDocumentNames(java.lang.String[], java.io.FileOutputStream);
    descriptor: ([Ljava/lang/String;Ljava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.lang.String[] sortedDocNames
        start local 2 // java.io.FileOutputStream stream
         0: .line 1040
            aload 1 /* sortedDocNames */
            arraylength
            ifne 2
         1: .line 1041
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 1044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            sipush 2048
            newarray 8
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
         3: .line 1045
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         4: .line 1046
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
         5: .line 1049
            aload 0 /* this */
            aload 2 /* stream */
            getstatic org.eclipse.jdt.internal.core.index.DiskIndex.SIGNATURE_CHARS:[C
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[C)V
         6: .line 1050
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
         7: .line 1051
            aload 0 /* this */
            aload 2 /* stream */
            iconst_m1
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
         8: .line 1053
            aload 1 /* sortedDocNames */
            arraylength
            istore 3 /* size */
        start local 3 // int size
         9: .line 1054
            aload 0 /* this */
            iload 3 /* size */
            bipush 100
            idiv
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
        10: .line 1055
            aload 0 /* this */
            iload 3 /* size */
            bipush 100
            irem
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
        11: .line 1056
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
            ifne 14
        12: .line 1057
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            iconst_1
            isub
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
        13: .line 1058
            aload 0 /* this */
            bipush 100
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
        14: .line 1060
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* size */
            bipush 127
            if_icmpgt 15
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex
        15: iload 3 /* size */
            sipush 32767
            if_icmpgt 16
            iconst_2
            goto 17
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex
        16: iconst_4
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.FileOutputStream int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex int
        17: putfield org.eclipse.jdt.internal.core.index.DiskIndex.documentReferenceSize:I
        18: .line 1062
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            newarray 10
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
        19: .line 1063
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            iconst_1
            isub
            istore 4 /* lastIndex */
        start local 4 // int lastIndex
        20: .line 1064
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        21: goto 64
        22: .line 1065
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iload 5 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iastore
        23: .line 1067
            iload 5 /* i */
            iload 4 /* lastIndex */
            if_icmpne 24
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
            goto 25
      StackMap locals:
      StackMap stack:
        24: bipush 100
      StackMap locals:
      StackMap stack: int
        25: istore 6 /* chunkSize */
        start local 6 // int chunkSize
        26: .line 1068
            iload 5 /* i */
            bipush 100
            imul
            istore 7 /* chunkIndex */
        start local 7 // int chunkIndex
        27: .line 1069
            aload 1 /* sortedDocNames */
            iload 7 /* chunkIndex */
            aaload
            astore 8 /* current */
        start local 8 // java.lang.String current
        28: .line 1070
            aload 0 /* this */
            aload 2 /* stream */
            aload 8 /* current */
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[C)V
        29: .line 1071
            iconst_1
            istore 9 /* j */
        start local 9 // int j
        30: goto 62
        31: .line 1072
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.FileOutputStream int int int int int java.lang.String int
      StackMap stack:
            aload 1 /* sortedDocNames */
            iload 7 /* chunkIndex */
            iload 9 /* j */
            iadd
            aaload
            astore 10 /* next */
        start local 10 // java.lang.String next
        32: .line 1073
            aload 8 /* current */
            invokevirtual java.lang.String.length:()I
            istore 11 /* len1 */
        start local 11 // int len1
        33: .line 1074
            aload 10 /* next */
            invokevirtual java.lang.String.length:()I
            istore 12 /* len2 */
        start local 12 // int len2
        34: .line 1075
            iload 11 /* len1 */
            iload 12 /* len2 */
            if_icmpge 35
            iload 11 /* len1 */
            goto 36
      StackMap locals: java.lang.String int int
      StackMap stack:
        35: iload 12 /* len2 */
      StackMap locals:
      StackMap stack: int
        36: istore 13 /* max */
        start local 13 // int max
        37: .line 1076
            iconst_0
            istore 14 /* start */
        start local 14 // int start
        38: .line 1077
            goto 41
        39: .line 1078
      StackMap locals: int int
      StackMap stack:
            iinc 14 /* start */ 1
        40: .line 1079
            iload 13 /* max */
            iload 14 /* start */
            if_icmpne 41
            goto 42
        41: .line 1077
      StackMap locals:
      StackMap stack:
            aload 8 /* current */
            iload 14 /* start */
            invokevirtual java.lang.String.charAt:(I)C
            aload 10 /* next */
            iload 14 /* start */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 39
        42: .line 1081
      StackMap locals:
      StackMap stack:
            iload 14 /* start */
            sipush 255
            if_icmple 43
            sipush 255
            istore 14 /* start */
        43: .line 1083
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* end */
        start local 15 // int end
        44: .line 1084
            goto 48
        45: .line 1085
      StackMap locals: int
      StackMap stack:
            iinc 15 /* end */ 1
        46: .line 1086
            iload 12 /* len2 */
            iload 14 /* start */
            if_icmpne 47
            goto 49
        47: .line 1087
      StackMap locals:
      StackMap stack:
            iload 11 /* len1 */
            ifne 48
            goto 49
        48: .line 1084
      StackMap locals:
      StackMap stack:
            aload 8 /* current */
            iinc 11 /* len1 */ -1
            iload 11 /* len1 */
            invokevirtual java.lang.String.charAt:(I)C
            aload 10 /* next */
            iinc 12 /* len2 */ -1
            iload 12 /* len2 */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 45
        49: .line 1089
      StackMap locals:
      StackMap stack:
            iload 15 /* end */
            sipush 255
            if_icmple 50
            sipush 255
            istore 15 /* end */
        50: .line 1090
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_2
            iadd
            sipush 2048
            if_icmplt 53
        51: .line 1091
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        52: .line 1092
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        53: .line 1094
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 14 /* start */
            i2b
            bastore
        54: .line 1095
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 15 /* end */
            i2b
            bastore
        55: .line 1096
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iconst_2
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
        56: .line 1098
            aload 10 /* next */
            invokevirtual java.lang.String.length:()I
            iload 15 /* end */
            isub
            istore 16 /* last */
        start local 16 // int last
        57: .line 1099
            aload 0 /* this */
            aload 2 /* stream */
            iload 14 /* start */
            iload 16 /* last */
            if_icmpge 58
            aload 10 /* next */
            invokevirtual java.lang.String.toCharArray:()[C
            iload 14 /* start */
            iload 16 /* last */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.subarray:([CII)[C
            goto 59
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.FileOutputStream int int int int int java.lang.String int java.lang.String int int int int int int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex java.io.FileOutputStream
        58: getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_CHAR:[C
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.FileOutputStream int int int int int java.lang.String int java.lang.String int int int int int int
      StackMap stack: org.eclipse.jdt.internal.core.index.DiskIndex java.io.FileOutputStream char[]
        59: invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[C)V
        60: .line 1100
            aload 10 /* next */
            astore 8 /* current */
        end local 16 // int last
        end local 15 // int end
        end local 14 // int start
        end local 13 // int max
        end local 12 // int len2
        end local 11 // int len1
        end local 10 // java.lang.String next
        61: .line 1071
            iinc 9 /* j */ 1
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.FileOutputStream int int int int int java.lang.String int
      StackMap stack:
        62: iload 9 /* j */
            iload 6 /* chunkSize */
            if_icmplt 31
        end local 9 // int j
        end local 8 // java.lang.String current
        end local 7 // int chunkIndex
        end local 6 // int chunkSize
        63: .line 1064
            iinc 5 /* i */ 1
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.lang.String[] java.io.FileOutputStream int int int
      StackMap stack:
        64: iload 5 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            if_icmplt 22
        end local 5 // int i
        65: .line 1103
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.startOfCategoryTables:I
        66: .line 1104
            return
        end local 4 // int lastIndex
        end local 3 // int size
        end local 2 // java.io.FileOutputStream stream
        end local 1 // java.lang.String[] sortedDocNames
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   67     0            this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   67     1  sortedDocNames  [Ljava/lang/String;
            0   67     2          stream  Ljava/io/FileOutputStream;
            9   67     3            size  I
           20   67     4       lastIndex  I
           21   65     5               i  I
           26   63     6       chunkSize  I
           27   63     7      chunkIndex  I
           28   63     8         current  Ljava/lang/String;
           30   63     9               j  I
           32   61    10            next  Ljava/lang/String;
           33   61    11            len1  I
           34   61    12            len2  I
           37   61    13             max  I
           38   61    14           start  I
           44   61    15             end  I
           57   61    16            last  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      sortedDocNames  
      stream          

  private void writeCategories(java.io.FileOutputStream);
    descriptor: (Ljava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.FileOutputStream stream
         0: .line 1106
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 2 /* categoryNames */
        start local 2 // char[][] categoryNames
         1: .line 1107
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 3 /* tables */
        start local 3 // java.lang.Object[] tables
         2: .line 1108
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: aload 2 /* categoryNames */
            arraylength
            istore 5 /* l */
        start local 5 // int l
         4: goto 8
         5: .line 1109
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.FileOutputStream char[][] java.lang.Object[] int int
      StackMap stack:
            aload 2 /* categoryNames */
            iload 4 /* i */
            aaload
            ifnull 7
         6: .line 1110
            aload 0 /* this */
            aload 2 /* categoryNames */
            iload 4 /* i */
            aaload
            aload 3 /* tables */
            iload 4 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            aload 1 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeCategoryTable:([CLorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;Ljava/io/FileOutputStream;)V
         7: .line 1108
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 5 /* l */
            if_icmplt 5
        end local 5 // int l
        end local 4 // int i
         9: .line 1111
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
        10: .line 1112
            return
        end local 3 // java.lang.Object[] tables
        end local 2 // char[][] categoryNames
        end local 1 // java.io.FileOutputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   11     1         stream  Ljava/io/FileOutputStream;
            1   11     2  categoryNames  [[C
            2   11     3         tables  [Ljava/lang/Object;
            3    9     4              i  I
            4    9     5              l  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private void writeCategoryTable(char[], org.eclipse.jdt.internal.compiler.util.HashtableOfObject, java.io.FileOutputStream);
    descriptor: ([CLorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;Ljava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // char[] categoryName
        start local 2 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocs
        start local 3 // java.io.FileOutputStream stream
         0: .line 1122
            sipush 256
            istore 4 /* largeArraySize */
        start local 4 // int largeArraySize
         1: .line 1123
            aload 2 /* wordsToDocs */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.valueTable:[Ljava/lang/Object;
            astore 5 /* values */
        start local 5 // java.lang.Object[] values
         2: .line 1124
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: aload 5 /* values */
            arraylength
            istore 7 /* l */
        start local 7 // int l
         4: goto 14
         5: .line 1125
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] org.eclipse.jdt.internal.compiler.util.HashtableOfObject java.io.FileOutputStream int java.lang.Object[] int int
      StackMap stack:
            aload 5 /* values */
            iload 6 /* i */
            aaload
            astore 8 /* o */
        start local 8 // java.lang.Object o
         6: .line 1126
            aload 8 /* o */
            ifnull 13
         7: .line 1127
            aload 8 /* o */
            instanceof org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            ifeq 9
         8: .line 1128
            aload 5 /* values */
            iload 6 /* i */
            aload 5 /* values */
            iload 6 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.core.index.DiskIndex$IntList
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex$IntList.asArray:()[I
            dup_x2
            aastore
            astore 8 /* o */
         9: .line 1129
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 8 /* o */
            checkcast int[]
            astore 9 /* documentNumbers */
        start local 9 // int[] documentNumbers
        10: .line 1130
            aload 9 /* documentNumbers */
            arraylength
            iload 4 /* largeArraySize */
            if_icmplt 13
        11: .line 1131
            aload 5 /* values */
            iload 6 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        12: .line 1132
            aload 0 /* this */
            aload 9 /* documentNumbers */
            aload 3 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeDocumentNumbers:([ILjava/io/FileOutputStream;)V
        end local 9 // int[] documentNumbers
        end local 8 // java.lang.Object o
        13: .line 1124
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 7 /* l */
            if_icmplt 5
        end local 7 // int l
        end local 6 // int i
        15: .line 1137
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            aload 1 /* categoryName */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.put:([CI)I
            pop
        16: .line 1138
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryTables:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            aload 1 /* categoryName */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObject.put:([CLjava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 1139
            aload 0 /* this */
            aload 3 /* stream */
            aload 2 /* wordsToDocs */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.elementSize:I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        18: .line 1140
            aload 2 /* wordsToDocs */
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfObject.keyTable:[[C
            astore 6 /* words */
        start local 6 // char[][] words
        19: .line 1141
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        20: aload 6 /* words */
            arraylength
            istore 8 /* l */
        start local 8 // int l
        21: goto 34
        22: .line 1142
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex char[] org.eclipse.jdt.internal.compiler.util.HashtableOfObject java.io.FileOutputStream int java.lang.Object[] char[][] int int
      StackMap stack:
            aload 5 /* values */
            iload 7 /* i */
            aaload
            astore 9 /* o */
        start local 9 // java.lang.Object o
        23: .line 1143
            aload 9 /* o */
            ifnull 33
        24: .line 1144
            aload 0 /* this */
            aload 3 /* stream */
            aload 6 /* words */
            iload 7 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[C)V
        25: .line 1145
            aload 9 /* o */
            instanceof int[]
            ifeq 31
        26: .line 1146
            aload 9 /* o */
            checkcast int[]
            astore 10 /* documentNumbers */
        start local 10 // int[] documentNumbers
        27: .line 1147
            aload 10 /* documentNumbers */
            arraylength
            iconst_1
            if_icmpne 29
        28: .line 1148
            aload 0 /* this */
            aload 3 /* stream */
            aload 10 /* documentNumbers */
            iconst_0
            iaload
            ineg
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
            goto 33
        29: .line 1150
      StackMap locals: java.lang.Object int[]
      StackMap stack:
            aload 0 /* this */
            aload 10 /* documentNumbers */
            aload 3 /* stream */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeDocumentNumbers:([ILjava/io/FileOutputStream;)V
        end local 10 // int[] documentNumbers
        30: .line 1151
            goto 33
        31: .line 1152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* stream */
            iload 4 /* largeArraySize */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        32: .line 1153
            aload 0 /* this */
            aload 3 /* stream */
            aload 9 /* o */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        end local 9 // java.lang.Object o
        33: .line 1141
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* i */
            iload 8 /* l */
            if_icmplt 22
        end local 8 // int l
        end local 7 // int i
        35: .line 1157
            return
        end local 6 // char[][] words
        end local 5 // java.lang.Object[] values
        end local 4 // int largeArraySize
        end local 3 // java.io.FileOutputStream stream
        end local 2 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject wordsToDocs
        end local 1 // char[] categoryName
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   36     0             this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   36     1     categoryName  [C
            0   36     2      wordsToDocs  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            0   36     3           stream  Ljava/io/FileOutputStream;
            1   36     4   largeArraySize  I
            2   36     5           values  [Ljava/lang/Object;
            3   15     6                i  I
            4   15     7                l  I
            6   13     8                o  Ljava/lang/Object;
           10   13     9  documentNumbers  [I
           19   36     6            words  [[C
           20   35     7                i  I
           21   35     8                l  I
           23   33     9                o  Ljava/lang/Object;
           27   30    10  documentNumbers  [I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      categoryName  
      wordsToDocs   
      stream        

  private void writeDocumentNumbers(int[], java.io.FileOutputStream);
    descriptor: ([ILjava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // int[] documentNumbers
        start local 2 // java.io.FileOutputStream stream
         0: .line 1160
            aload 1 /* documentNumbers */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         1: .line 1161
            aload 0 /* this */
            aload 2 /* stream */
            iload 3 /* length */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
         2: .line 1162
            aload 1 /* documentNumbers */
            invokestatic org.eclipse.jdt.internal.core.util.Util.sort:([I)V
         3: .line 1163
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         4: .line 1164
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.documentReferenceSize:I
            tableswitch { // 1 - 2
                    1: 5
                    2: 20
              default: 37
          }
         5: .line 1166
      StackMap locals: int int
      StackMap stack:
            goto 14
         6: .line 1168
      StackMap locals:
      StackMap stack:
            sipush 2048
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            isub
            istore 5 /* bytesLeft */
        start local 5 // int bytesLeft
         7: .line 1169
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 11
         9: .line 1170
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iinc 4 /* start */ 1
            iaload
            i2b
            bastore
        10: .line 1169
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            iload 5 /* bytesLeft */
            if_icmplt 9
        end local 6 // int i
        12: .line 1172
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        13: .line 1173
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        end local 5 // int bytesLeft
        14: .line 1166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 3 /* length */
            iadd
            iload 4 /* start */
            isub
            sipush 2048
            if_icmpge 6
        15: .line 1175
            goto 17
        16: .line 1176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iinc 4 /* start */ 1
            iaload
            i2b
            bastore
        17: .line 1175
      StackMap locals:
      StackMap stack:
            iload 4 /* start */
            iload 3 /* length */
            if_icmplt 16
        18: .line 1178
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iload 3 /* length */
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
        19: .line 1179
            goto 40
        20: .line 1181
      StackMap locals:
      StackMap stack:
            goto 30
        21: .line 1183
      StackMap locals:
      StackMap stack:
            sipush 2048
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            isub
            iconst_2
            idiv
            istore 5 /* shortsLeft */
        start local 5 // int shortsLeft
        22: .line 1184
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        23: goto 27
        24: .line 1185
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iaload
            bipush 8
            ishr
            i2b
            bastore
        25: .line 1186
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iinc 4 /* start */ 1
            iaload
            i2b
            bastore
        26: .line 1184
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            iload 5 /* shortsLeft */
            if_icmplt 24
        end local 6 // int i
        28: .line 1188
            aload 2 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        29: .line 1189
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        end local 5 // int shortsLeft
        30: .line 1181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 3 /* length */
            iload 4 /* start */
            isub
            iconst_2
            imul
            iadd
            sipush 2048
            if_icmpge 21
        31: .line 1191
            goto 34
        32: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iaload
            bipush 8
            ishr
            i2b
            bastore
        33: .line 1193
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iinc 4 /* start */ 1
            iaload
            i2b
            bastore
        34: .line 1191
      StackMap locals:
      StackMap stack:
            iload 4 /* start */
            iload 3 /* length */
            if_icmplt 32
        35: .line 1195
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iload 3 /* length */
            iconst_2
            imul
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
        36: .line 1196
            goto 40
        37: .line 1198
      StackMap locals:
      StackMap stack:
            goto 39
        38: .line 1199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* stream */
            aload 1 /* documentNumbers */
            iload 4 /* start */
            iinc 4 /* start */ 1
            iaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        39: .line 1198
      StackMap locals:
      StackMap stack:
            iload 4 /* start */
            iload 3 /* length */
            if_icmplt 38
        40: .line 1203
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int start
        end local 3 // int length
        end local 2 // java.io.FileOutputStream stream
        end local 1 // int[] documentNumbers
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   41     0             this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   41     1  documentNumbers  [I
            0   41     2           stream  Ljava/io/FileOutputStream;
            1   41     3           length  I
            4   41     4            start  I
            7   14     5        bytesLeft  I
            8   12     6                i  I
           22   30     5       shortsLeft  I
           23   28     6                i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      documentNumbers  
      stream           

  private void writeHeaderInfo(java.io.FileOutputStream);
    descriptor: (Ljava/io/FileOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.FileOutputStream stream
         0: .line 1205
            aload 0 /* this */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
         1: .line 1206
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_3
            iadd
            sipush 2048
            if_icmplt 4
         2: .line 1207
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
         3: .line 1208
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         4: .line 1210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.sizeOfLastChunk:I
            i2b
            bastore
         5: .line 1211
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.documentReferenceSize:I
            i2b
            bastore
         6: .line 1212
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.separator:C
            i2b
            bastore
         7: .line 1213
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iconst_3
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
         8: .line 1216
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: goto 12
        10: .line 1217
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.chunkOffsets:[I
            iload 2 /* i */
            iaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        11: .line 1216
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.numberOfChunks:I
            if_icmplt 10
        end local 2 // int i
        13: .line 1220
            aload 0 /* this */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.startOfCategoryTables:I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        14: .line 1223
            aload 0 /* this */
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.elementSize:I
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        15: .line 1224
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.keyTable:[[C
            astore 2 /* categoryNames */
        start local 2 // char[][] categoryNames
        16: .line 1225
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.categoryOffsets:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfIntValues;
            getfield org.eclipse.jdt.internal.compiler.util.HashtableOfIntValues.valueTable:[I
            astore 3 /* offsets */
        start local 3 // int[] offsets
        17: .line 1226
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        18: aload 2 /* categoryNames */
            arraylength
            istore 5 /* l */
        start local 5 // int l
        19: goto 24
        20: .line 1227
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.FileOutputStream char[][] int[] int int
      StackMap stack:
            aload 2 /* categoryNames */
            iload 4 /* i */
            aaload
            ifnull 23
        21: .line 1228
            aload 0 /* this */
            aload 1 /* stream */
            aload 2 /* categoryNames */
            iload 4 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[C)V
        22: .line 1229
            aload 0 /* this */
            aload 1 /* stream */
            aload 3 /* offsets */
            iload 4 /* i */
            iaload
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamInt:(Ljava/io/FileOutputStream;I)V
        23: .line 1226
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 4 /* i */
            iload 5 /* l */
            if_icmplt 20
        end local 5 // int l
        end local 4 // int i
        25: .line 1233
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            ifle 28
        26: .line 1234
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        27: .line 1235
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        28: .line 1237
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int[] offsets
        end local 2 // char[][] categoryNames
        end local 1 // java.io.FileOutputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   29     1         stream  Ljava/io/FileOutputStream;
            9   13     2              i  I
           16   29     2  categoryNames  [[C
           17   29     3        offsets  [I
           18   25     4              i  I
           19   25     5              l  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private void writeOffsetToHeader(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // int offsetToHeader
         0: .line 1239
            iload 1 /* offsetToHeader */
            ifle 10
         1: .line 1240
            new java.io.RandomAccessFile
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.indexLocation:Lorg/eclipse/jdt/internal/core/index/IndexLocation;
            invokevirtual org.eclipse.jdt.internal.core.index.IndexLocation.getIndexFile:()Ljava/io/File;
            ldc "rw"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 2 /* file */
        start local 2 // java.io.RandomAccessFile file
         2: .line 1242
            aload 2 /* file */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
            i2l
            invokevirtual java.io.RandomAccessFile.seek:(J)V
         3: .line 1243
            aload 2 /* file */
            iload 1 /* offsetToHeader */
            invokevirtual java.io.RandomAccessFile.writeInt:(I)V
         4: .line 1244
            aload 0 /* this */
            iload 1 /* offsetToHeader */
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.headerInfoOffset:I
         5: .line 1245
            goto 9
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex int java.io.RandomAccessFile
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 1246
            aload 2 /* file */
            invokevirtual java.io.RandomAccessFile.close:()V
         8: .line 1247
            aload 3
            athrow
         9: .line 1246
      StackMap locals:
      StackMap stack:
            aload 2 /* file */
            invokevirtual java.io.RandomAccessFile.close:()V
        end local 2 // java.io.RandomAccessFile file
        10: .line 1249
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int offsetToHeader
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   11     1  offsetToHeader  I
            2   10     2            file  Ljava/io/RandomAccessFile;
      Exception table:
        from    to  target  type
           2     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      offsetToHeader  

  private void writeStreamChars(java.io.FileOutputStream, char[]);
    descriptor: (Ljava/io/FileOutputStream;[C)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.FileOutputStream stream
        start local 2 // char[] array
         0: .line 1270
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_2
            iadd
            sipush 2048
            if_icmplt 3
         1: .line 1271
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
         2: .line 1272
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         3: .line 1274
      StackMap locals:
      StackMap stack:
            aload 2 /* array */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         4: .line 1275
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 3 /* length */
            bipush 8
            iushr
            sipush 255
            iand
            i2b
            bastore
         5: .line 1276
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 3 /* length */
            sipush 255
            iand
            i2b
            bastore
         6: .line 1277
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iconst_2
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
         7: .line 1280
            iload 3 /* length */
            iconst_3
            imul
            istore 4 /* totalBytesNeeded */
        start local 4 // int totalBytesNeeded
         8: .line 1281
            iload 4 /* totalBytesNeeded */
            sipush 2048
            if_icmpgt 14
         9: .line 1282
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 4 /* totalBytesNeeded */
            iadd
            sipush 2048
            if_icmple 12
        10: .line 1284
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        11: .line 1285
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        12: .line 1287
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* stream */
            aload 2 /* array */
            iconst_0
            iload 3 /* length */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[CII)V
        13: .line 1288
            goto 26
        14: .line 1289
      StackMap locals:
      StackMap stack:
            sipush 682
            istore 5 /* charsPerWrite */
        start local 5 // int charsPerWrite
        15: .line 1290
            iconst_0
            istore 6 /* start */
        start local 6 // int start
        16: .line 1291
            goto 25
        17: .line 1292
      StackMap locals: int int
      StackMap stack:
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
        18: .line 1293
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
        19: .line 1294
            iload 3 /* length */
            iload 6 /* start */
            isub
            istore 7 /* charsLeftToWrite */
        start local 7 // int charsLeftToWrite
        20: .line 1295
            iload 6 /* start */
            iload 5 /* charsPerWrite */
            iload 7 /* charsLeftToWrite */
            if_icmpge 21
            iload 5 /* charsPerWrite */
            goto 22
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.FileOutputStream char[] int int int int int
      StackMap stack: int
        21: iload 7 /* charsLeftToWrite */
      StackMap locals: org.eclipse.jdt.internal.core.index.DiskIndex java.io.FileOutputStream char[] int int int int int
      StackMap stack: int int
        22: iadd
            istore 8 /* end */
        start local 8 // int end
        23: .line 1296
            aload 0 /* this */
            aload 1 /* stream */
            aload 2 /* array */
            iload 6 /* start */
            iload 8 /* end */
            invokevirtual org.eclipse.jdt.internal.core.index.DiskIndex.writeStreamChars:(Ljava/io/FileOutputStream;[CII)V
        24: .line 1297
            iload 8 /* end */
            istore 6 /* start */
        end local 8 // int end
        end local 7 // int charsLeftToWrite
        25: .line 1291
      StackMap locals:
      StackMap stack:
            iload 6 /* start */
            iload 3 /* length */
            if_icmplt 17
        end local 6 // int start
        end local 5 // int charsPerWrite
        26: .line 1300
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int totalBytesNeeded
        end local 3 // int length
        end local 2 // char[] array
        end local 1 // java.io.FileOutputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   27     0              this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   27     1            stream  Ljava/io/FileOutputStream;
            0   27     2             array  [C
            4   27     3            length  I
            8   27     4  totalBytesNeeded  I
           15   26     5     charsPerWrite  I
           16   26     6             start  I
           20   25     7  charsLeftToWrite  I
           23   25     8               end  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  
      array   

  private void writeStreamChars(java.io.FileOutputStream, char[], int, int);
    descriptor: (Ljava/io/FileOutputStream;[CII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.FileOutputStream stream
        start local 2 // char[] array
        start local 3 // int start
        start local 4 // int end
         0: .line 1305
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            istore 5 /* oldIndex */
        start local 5 // int oldIndex
         1: .line 1306
            goto 26
         2: .line 1307
      StackMap locals: int
      StackMap stack:
            aload 2 /* array */
            iload 3 /* start */
            iinc 3 /* start */ 1
            caload
            istore 6 /* ch */
        start local 6 // int ch
         3: .line 1308
            iload 6 /* ch */
            bipush 127
            iand
            iload 6 /* ch */
            if_icmpne 6
         4: .line 1309
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 6 /* ch */
            i2b
            bastore
         5: .line 1310
            goto 26
      StackMap locals: int
      StackMap stack:
         6: iload 6 /* ch */
            sipush 2047
            iand
            iload 6 /* ch */
            if_icmpne 15
         7: .line 1312
            iload 6 /* ch */
            bipush 6
            ishr
            i2b
            istore 7 /* b */
        start local 7 // byte b
         8: .line 1313
            iload 7 /* b */
            bipush 31
            iand
            i2b
            istore 7 /* b */
         9: .line 1314
            iload 7 /* b */
            sipush 192
            ior
            i2b
            istore 7 /* b */
        10: .line 1315
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 7 /* b */
            bastore
        11: .line 1317
            iload 6 /* ch */
            bipush 63
            iand
            i2b
            istore 7 /* b */
        12: .line 1318
            iload 7 /* b */
            sipush 128
            ior
            i2b
            istore 7 /* b */
        13: .line 1319
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 7 /* b */
            bastore
        end local 7 // byte b
        14: .line 1320
            goto 26
        15: .line 1322
      StackMap locals:
      StackMap stack:
            iload 6 /* ch */
            bipush 12
            ishr
            i2b
            istore 7 /* b */
        start local 7 // byte b
        16: .line 1323
            iload 7 /* b */
            bipush 15
            iand
            i2b
            istore 7 /* b */
        17: .line 1324
            iload 7 /* b */
            sipush 224
            ior
            i2b
            istore 7 /* b */
        18: .line 1325
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 7 /* b */
            bastore
        19: .line 1327
            iload 6 /* ch */
            bipush 6
            ishr
            i2b
            istore 7 /* b */
        20: .line 1328
            iload 7 /* b */
            bipush 63
            iand
            i2b
            istore 7 /* b */
        21: .line 1329
            iload 7 /* b */
            sipush 128
            ior
            i2b
            istore 7 /* b */
        22: .line 1330
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 7 /* b */
            bastore
        23: .line 1332
            iload 6 /* ch */
            bipush 63
            iand
            i2b
            istore 7 /* b */
        24: .line 1333
            iload 7 /* b */
            sipush 128
            ior
            i2b
            istore 7 /* b */
        25: .line 1334
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 7 /* b */
            bastore
        end local 7 // byte b
        end local 6 // int ch
        26: .line 1306
      StackMap locals:
      StackMap stack:
            iload 3 /* start */
            iload 4 /* end */
            if_icmplt 2
        27: .line 1337
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 5 /* oldIndex */
            isub
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
        28: .line 1338
            return
        end local 5 // int oldIndex
        end local 4 // int end
        end local 3 // int start
        end local 2 // char[] array
        end local 1 // java.io.FileOutputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0   29     1    stream  Ljava/io/FileOutputStream;
            0   29     2     array  [C
            0   29     3     start  I
            0   29     4       end  I
            1   29     5  oldIndex  I
            3   26     6        ch  I
            8   14     7         b  B
           16   26     7         b  B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  
      array   
      start   
      end     

  private void writeStreamInt(java.io.FileOutputStream, int);
    descriptor: (Ljava/io/FileOutputStream;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
        start local 1 // java.io.FileOutputStream stream
        start local 2 // int val
         0: .line 1340
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iconst_4
            iadd
            sipush 2048
            if_icmplt 3
         1: .line 1341
            aload 1 /* stream */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            invokevirtual java.io.FileOutputStream.write:([BII)V
         2: .line 1342
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
         3: .line 1344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 2 /* val */
            bipush 24
            ishr
            i2b
            bastore
         4: .line 1345
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 2 /* val */
            bipush 16
            ishr
            i2b
            bastore
         5: .line 1346
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 2 /* val */
            bipush 8
            ishr
            i2b
            bastore
         6: .line 1347
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamBuffer:[B
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.bufferIndex:I
            iload 2 /* val */
            i2b
            bastore
         7: .line 1348
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
            iconst_4
            iadd
            putfield org.eclipse.jdt.internal.core.index.DiskIndex.streamEnd:I
         8: .line 1349
            return
        end local 2 // int val
        end local 1 // java.io.FileOutputStream stream
        end local 0 // org.eclipse.jdt.internal.core.index.DiskIndex this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/eclipse/jdt/internal/core/index/DiskIndex;
            0    9     1  stream  Ljava/io/FileOutputStream;
            0    9     2     val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  
      val     
}
SourceFile: "DiskIndex.java"
NestMembers:
  org.eclipse.jdt.internal.core.index.DiskIndex$IntList
InnerClasses:
  IntList = org.eclipse.jdt.internal.core.index.DiskIndex$IntList of org.eclipse.jdt.internal.core.index.DiskIndex