public class org.eclipse.jdt.internal.core.nd.field.FieldList<T> extends org.eclipse.jdt.internal.core.nd.field.BaseField implements org.eclipse.jdt.internal.core.nd.field.IDestructableField
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.nd.field.FieldList
  super_class: org.eclipse.jdt.internal.core.nd.field.BaseField
{
  public static final org.eclipse.jdt.internal.core.nd.field.FieldPointer FIRST_BLOCK;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.eclipse.jdt.internal.core.nd.field.FieldPointer LAST_BLOCK_WITH_ELEMENTS;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final org.eclipse.jdt.internal.core.nd.field.StructDef<org.eclipse.jdt.internal.core.nd.field.FieldList> type;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<Lorg/eclipse/jdt/internal/core/nd/field/FieldList;>;

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

  private static final long MAX_BYTES_IN_A_CHUNK;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.eclipse.jdt.internal.core.nd.field.StructDef<T> elementType;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;

  private final int elementsPerBlock;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.internal.core.nd.field.StructDef<?> ownerType;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;

  private final org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag allocateTag;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag appendTag;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag destructTag;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 31
            ldc Lorg/eclipse/jdt/internal/core/nd/field/FieldList;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.eclipse.jdt.internal.core.nd.field.FieldList.$assertionsDisabled:Z
         3: .line 46
            iconst_1
            invokestatic org.eclipse.jdt.internal.core.nd.db.Database.getBytesThatFitInChunks:(I)J
            putstatic org.eclipse.jdt.internal.core.nd.field.FieldList.MAX_BYTES_IN_A_CHUNK:J
         4: .line 56
            ldc Lorg/eclipse/jdt/internal/core/nd/field/FieldList;
            invokestatic org.eclipse.jdt.internal.core.nd.field.StructDef.createAbstract:(Ljava/lang/Class;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            putstatic org.eclipse.jdt.internal.core.nd.field.FieldList.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         5: .line 57
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addPointer:()Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            putstatic org.eclipse.jdt.internal.core.nd.field.FieldList.FIRST_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
         6: .line 58
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addPointer:()Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            putstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LAST_BLOCK_WITH_ELEMENTS:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
         7: .line 60
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.done:()V
         8: .line 61
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.type:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.size:()I
            bipush 8
            invokestatic org.eclipse.jdt.internal.core.nd.util.MathUtils.roundUpToNearestMultipleOfPowerOfTwo:(II)I
            putstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LIST_HEADER_BYTES:I
         9: .line 62
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(org.eclipse.jdt.internal.core.nd.field.StructDef<?>, org.eclipse.jdt.internal.core.nd.field.StructDef<T>, );
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef ownerType
        start local 2 // org.eclipse.jdt.internal.core.nd.field.StructDef elementType
        start local 3 // int elementsPerBlock
         0: .line 86
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.nd.field.BaseField.<init>:()V
         1: .line 87
            aload 0 /* this */
            aload 2 /* elementType */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         2: .line 88
            aload 0 /* this */
            iload 3 /* elementsPerBlock */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementsPerBlock:I
         3: .line 89
            aload 0 /* this */
            aload 1 /* ownerType */
            putfield org.eclipse.jdt.internal.core.nd.field.FieldList.ownerType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
         4: .line 90
            aload 1 /* ownerType */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getNumFields:()I
            istore 4 /* fieldNumber */
        start local 4 // int fieldNumber
         5: .line 91
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* fieldNumber */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", a "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 92
            ldc " in struct "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* ownerType */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 91
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.setFieldName:(Ljava/lang/String;)V
         8: .line 93
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Allocating elements for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getFieldName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.db.ModificationLog.createTag:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            putfield org.eclipse.jdt.internal.core.nd.field.FieldList.allocateTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
         9: .line 94
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Appending to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getFieldName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.db.ModificationLog.createTag:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            putfield org.eclipse.jdt.internal.core.nd.field.FieldList.appendTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
        10: .line 95
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Deallocating "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getFieldName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.db.ModificationLog.createTag:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            putfield org.eclipse.jdt.internal.core.nd.field.FieldList.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
        11: .line 96
            return
        end local 4 // int fieldNumber
        end local 3 // int elementsPerBlock
        end local 2 // org.eclipse.jdt.internal.core.nd.field.StructDef elementType
        end local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef ownerType
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0   12     1         ownerType  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
            0   12     2       elementType  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
            0   12     3  elementsPerBlock  I
            5   12     4       fieldNumber  I
    Signature: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;I)V
    MethodParameters:
                  Name  Flags
      ownerType         
      elementType       
      elementsPerBlock  

  public static <T> org.eclipse.jdt.internal.core.nd.field.FieldList<T> create(org.eclipse.jdt.internal.core.nd.field.StructDef<?>, org.eclipse.jdt.internal.core.nd.field.StructDef<T>);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)Lorg/eclipse/jdt/internal/core/nd/field/FieldList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef ownerStruct
        start local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef elementType
         0: .line 110
            aload 0 /* ownerStruct */
            aload 1 /* elementType */
            iconst_1
            invokestatic org.eclipse.jdt.internal.core.nd.field.FieldList.create:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;I)Lorg/eclipse/jdt/internal/core/nd/field/FieldList;
            areturn
        end local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef elementType
        end local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef ownerStruct
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  ownerStruct  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
            0    1     1  elementType  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;)Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
    MethodParameters:
             Name  Flags
      ownerStruct  
      elementType  

  public static <T> org.eclipse.jdt.internal.core.nd.field.FieldList<T> create(org.eclipse.jdt.internal.core.nd.field.StructDef<?>, org.eclipse.jdt.internal.core.nd.field.StructDef<T>, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;I)Lorg/eclipse/jdt/internal/core/nd/field/FieldList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef ownerStruct
        start local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef elementType
        start local 2 // int elementsPerBlock
         0: .line 127
            new org.eclipse.jdt.internal.core.nd.field.FieldList
            dup
            aload 0 /* ownerStruct */
            aload 1 /* elementType */
            iload 2 /* elementsPerBlock */
            invokespecial org.eclipse.jdt.internal.core.nd.field.FieldList.<init>:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;I)V
            astore 3 /* result */
        start local 3 // org.eclipse.jdt.internal.core.nd.field.FieldList result
         1: .line 128
            aload 0 /* ownerStruct */
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
         2: .line 129
            aload 0 /* ownerStruct */
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addDestructableField:(Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;)V
         3: .line 130
            aload 3 /* result */
            areturn
        end local 3 // org.eclipse.jdt.internal.core.nd.field.FieldList result
        end local 2 // int elementsPerBlock
        end local 1 // org.eclipse.jdt.internal.core.nd.field.StructDef elementType
        end local 0 // org.eclipse.jdt.internal.core.nd.field.StructDef ownerStruct
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0       ownerStruct  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
            0    4     1       elementType  Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
            0    4     2  elementsPerBlock  I
            1    4     3            result  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;I)Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
    MethodParameters:
                  Name  Flags
      ownerStruct       
      elementType       
      elementsPerBlock  

  private int getElementSize();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
         0: .line 134
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.getRecordSize:()I
            istore 1 /* recordSize */
        start local 1 // int recordSize
         1: .line 135
            iload 1 /* recordSize */
            bipush 8
            invokestatic org.eclipse.jdt.internal.core.nd.util.MathUtils.roundUpToNearestMultipleOfPowerOfTwo:(II)I
            ireturn
        end local 1 // int recordSize
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            1    2     1  recordSize  I

  public int getRecordSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
         0: .line 140
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LIST_HEADER_BYTES:I
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;

  public java.util.List<T> asList(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=16, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 150
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.offset:I
            i2l
            ladd
            lstore 4 /* headerStartAddress */
        start local 4 // long headerStartAddress
         1: .line 151
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.FIRST_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 4 /* headerStartAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 6 /* firstBlockAddress */
        start local 6 // long firstBlockAddress
         2: .line 153
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* result */
        start local 8 // java.util.List result
         3: .line 155
            lload 6 /* firstBlockAddress */
            lstore 9 /* nextBlockAddress */
        start local 9 // long nextBlockAddress
         4: .line 156
            goto 10
         5: .line 157
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldList org.eclipse.jdt.internal.core.nd.Nd long long long java.util.List long
      StackMap stack:
            lload 9 /* nextBlockAddress */
            lstore 11 /* currentBlockAddress */
        start local 11 // long currentBlockAddress
         6: .line 158
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.NEXT_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 11 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 9 /* nextBlockAddress */
         7: .line 159
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.ELEMENTS_IN_USE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 11 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 13 /* elementsInBlock */
        start local 13 // int elementsInBlock
         8: .line 160
            lload 11 /* currentBlockAddress */
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_HEADER_BYTES:I
            i2l
            ladd
            lstore 14 /* firstElementInBlockAddress */
        start local 14 // long firstElementInBlockAddress
         9: .line 162
            aload 0 /* this */
            aload 8 /* result */
            aload 1 /* nd */
            lload 14 /* firstElementInBlockAddress */
            iload 13 /* elementsInBlock */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.readElements:(Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
        end local 14 // long firstElementInBlockAddress
        end local 13 // int elementsInBlock
        end local 11 // long currentBlockAddress
        10: .line 156
      StackMap locals:
      StackMap stack:
            lload 9 /* nextBlockAddress */
            lconst_0
            lcmp
            ifne 5
        11: .line 165
            aload 8 /* result */
            areturn
        end local 9 // long nextBlockAddress
        end local 8 // java.util.List result
        end local 6 // long firstBlockAddress
        end local 4 // long headerStartAddress
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   12     0                        this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0   12     1                          nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0   12     2                     address  J
            1   12     4          headerStartAddress  J
            2   12     6           firstBlockAddress  J
            3   12     8                      result  Ljava/util/List<TT;>;
            4   12     9            nextBlockAddress  J
            6   10    11         currentBlockAddress  J
            8   10    13             elementsInBlock  I
            9   10    14  firstElementInBlockAddress  J
    Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/util/List<TT;>;
    MethodParameters:
         Name  Flags
      nd       
      address  

  private void readElements(java.util.List<T>, org.eclipse.jdt.internal.core.nd.Nd, long, );
    descriptor: (Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // java.util.List result
        start local 2 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 3 // long nextElementAddress
        start local 5 // int count
         0: .line 169
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            astore 6 /* factory */
        start local 6 // org.eclipse.jdt.internal.core.nd.ITypeFactory factory
         1: .line 171
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getElementSize:()I
            istore 7 /* size */
        start local 7 // int size
         2: .line 172
            goto 6
         3: .line 173
      StackMap locals: org.eclipse.jdt.internal.core.nd.ITypeFactory int
      StackMap stack:
            aload 1 /* result */
            aload 6 /* factory */
            aload 2 /* nd */
            lload 3 /* nextElementAddress */
            invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.create:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 174
            lload 3 /* nextElementAddress */
            iload 7 /* size */
            i2l
            ladd
            lstore 3 /* nextElementAddress */
         5: .line 172
            iinc 5 /* count */ -1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* count */
            ifgt 3
         7: .line 176
            return
        end local 7 // int size
        end local 6 // org.eclipse.jdt.internal.core.nd.ITypeFactory factory
        end local 5 // int count
        end local 3 // long nextElementAddress
        end local 2 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 1 // java.util.List result
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0    8     1              result  Ljava/util/List<TT;>;
            0    8     2                  nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    8     3  nextElementAddress  J
            0    8     5               count  I
            1    8     6             factory  Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TT;>;
            2    8     7                size  I
    Signature: (Ljava/util/List<TT;>;Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
    MethodParameters:
                    Name  Flags
      result              
      nd                  
      nextElementAddress  
      count               

  public T append(org.eclipse.jdt.internal.core.nd.Nd, );
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=18, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 179
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            astore 4 /* db */
        start local 4 // org.eclipse.jdt.internal.core.nd.db.Database db
         1: .line 180
            aload 4 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.appendTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.start:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
         2: .line 182
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.offset:I
            i2l
            ladd
            lstore 5 /* headerStartAddress */
        start local 5 // long headerStartAddress
         3: .line 183
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LAST_BLOCK_WITH_ELEMENTS:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 5 /* headerStartAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 7 /* nextBlockAddress */
        start local 7 // long nextBlockAddress
         4: .line 186
            lload 7 /* nextBlockAddress */
            lstore 9 /* insertionBlockAddress */
        start local 9 // long insertionBlockAddress
         5: .line 187
            lload 7 /* nextBlockAddress */
            lconst_0
            lcmp
            ifne 10
         6: .line 188
            aload 0 /* this */
            aload 1 /* nd */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementsPerBlock:I
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.allocateNewBlock:(Lorg/eclipse/jdt/internal/core/nd/Nd;I)J
            lstore 11 /* newBlockAddress */
        start local 11 // long newBlockAddress
         7: .line 189
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LAST_BLOCK_WITH_ELEMENTS:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 5 /* headerStartAddress */
            lload 11 /* newBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
         8: .line 190
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.FIRST_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 5 /* headerStartAddress */
            lload 11 /* newBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
         9: .line 191
            lload 11 /* newBlockAddress */
            lstore 9 /* insertionBlockAddress */
        end local 11 // long newBlockAddress
        10: .line 195
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldList org.eclipse.jdt.internal.core.nd.Nd long org.eclipse.jdt.internal.core.nd.db.Database long long long
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.ELEMENTS_IN_USE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 9 /* insertionBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 11 /* elementsInBlock */
        start local 11 // int elementsInBlock
        11: .line 196
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_SIZE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 9 /* insertionBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 12 /* blockSize */
        start local 12 // int blockSize
        12: .line 198
            iload 11 /* elementsInBlock */
            iload 12 /* blockSize */
            if_icmplt 20
        13: .line 199
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.NEXT_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 9 /* insertionBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 13 /* nextBlock */
        start local 13 // long nextBlock
        14: .line 200
            lload 13 /* nextBlock */
            lconst_0
            lcmp
            ifne 17
        15: .line 201
            aload 0 /* this */
            aload 1 /* nd */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementsPerBlock:I
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.allocateNewBlock:(Lorg/eclipse/jdt/internal/core/nd/Nd;I)J
            lstore 13 /* nextBlock */
        16: .line 202
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.NEXT_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 9 /* insertionBlockAddress */
            lload 13 /* nextBlock */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
        17: .line 204
      StackMap locals: int int long
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LAST_BLOCK_WITH_ELEMENTS:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 5 /* headerStartAddress */
            lload 13 /* nextBlock */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
        18: .line 205
            lload 13 /* nextBlock */
            lstore 9 /* insertionBlockAddress */
        19: .line 206
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.ELEMENTS_IN_USE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 9 /* insertionBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 11 /* elementsInBlock */
        end local 13 // long nextBlock
        20: .line 209
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.ELEMENTS_IN_USE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 9 /* insertionBlockAddress */
            iload 11 /* elementsInBlock */
            iconst_1
            iadd
            i2s
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JS)V
        21: .line 210
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getElementSize:()I
            istore 13 /* elementSize */
        start local 13 // int elementSize
        22: .line 212
            lload 9 /* insertionBlockAddress */
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_HEADER_BYTES:I
            i2l
            ladd
            iload 11 /* elementsInBlock */
            iload 13 /* elementSize */
            imul
            i2l
            ladd
            lstore 14 /* resultAddress */
        start local 14 // long resultAddress
        23: .line 213
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.$assertionsDisabled:Z
            ifne 24
            lload 14 /* resultAddress */
            ldc 2
            lsub
            ldc 7
            land
            lconst_0
            lcmp
            ifeq 24
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        24: .line 214
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            aload 1 /* nd */
            lload 14 /* resultAddress */
            invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.create:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Ljava/lang/Object;
            astore 17
        25: .line 216
            aload 4 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.appendTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
        26: .line 214
            aload 17
            areturn
        end local 14 // long resultAddress
        end local 13 // int elementSize
        end local 12 // int blockSize
        end local 11 // int elementsInBlock
        end local 9 // long insertionBlockAddress
        end local 7 // long nextBlockAddress
        end local 5 // long headerStartAddress
        27: .line 215
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldList org.eclipse.jdt.internal.core.nd.Nd long org.eclipse.jdt.internal.core.nd.db.Database
      StackMap stack: java.lang.Throwable
            astore 16
        28: .line 216
            aload 4 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.appendTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
        29: .line 217
            aload 16
            athrow
        end local 4 // org.eclipse.jdt.internal.core.nd.db.Database db
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   30     0                   this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0   30     1                     nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0   30     2                address  J
            1   30     4                     db  Lorg/eclipse/jdt/internal/core/nd/db/Database;
            3   27     5     headerStartAddress  J
            4   27     7       nextBlockAddress  J
            5   27     9  insertionBlockAddress  J
            7   10    11        newBlockAddress  J
           11   27    11        elementsInBlock  I
           12   27    12              blockSize  I
           14   20    13              nextBlock  J
           22   27    13            elementSize  I
           23   27    14          resultAddress  J
      Exception table:
        from    to  target  type
           2    25      27  any
    Signature: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)TT;
    MethodParameters:
         Name  Flags
      nd       
      address  

  public void allocate(org.eclipse.jdt.internal.core.nd.Nd, long, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
        start local 4 // int numElements
         0: .line 227
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            astore 5 /* db */
        start local 5 // org.eclipse.jdt.internal.core.nd.db.Database db
         1: .line 228
            aload 5 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.allocateTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.start:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
         2: .line 230
            iload 4 /* numElements */
            ifne 5
         3: .line 267
            aload 5 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.allocateTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
         4: .line 232
            return
         5: .line 234
      StackMap locals: org.eclipse.jdt.internal.core.nd.db.Database
      StackMap stack:
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.offset:I
            i2l
            ladd
            lstore 6 /* headerStartAddress */
        start local 6 // long headerStartAddress
         6: .line 235
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LAST_BLOCK_WITH_ELEMENTS:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 6 /* headerStartAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 8 /* nextBlockAddress */
        start local 8 // long nextBlockAddress
         7: .line 237
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.MAX_BYTES_IN_A_CHUNK:J
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_HEADER_BYTES:I
            i2l
            lsub
         8: .line 238
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getElementSize:()I
            i2l
         9: .line 237
            ldiv
            l2i
            istore 10 /* maxBlockSizeThatFitsInAChunk */
        start local 10 // int maxBlockSizeThatFitsInAChunk
        10: .line 241
            lload 8 /* nextBlockAddress */
            lconst_0
            lcmp
            ifne 15
        11: .line 242
            iload 4 /* numElements */
            iload 10 /* maxBlockSizeThatFitsInAChunk */
            invokestatic java.lang.Math.min:(II)I
            istore 11 /* firstAllocation */
        start local 11 // int firstAllocation
        12: .line 243
            aload 0 /* this */
            aload 1 /* nd */
            iload 11 /* firstAllocation */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.allocateNewBlock:(Lorg/eclipse/jdt/internal/core/nd/Nd;I)J
            lstore 8 /* nextBlockAddress */
        13: .line 244
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.LAST_BLOCK_WITH_ELEMENTS:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 6 /* headerStartAddress */
            lload 8 /* nextBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
        14: .line 245
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.FIRST_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 6 /* headerStartAddress */
            lload 8 /* nextBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
        end local 11 // int firstAllocation
        15: .line 249
      StackMap locals: long long int
      StackMap stack:
            iload 4 /* numElements */
            istore 11 /* remainingToAllocate */
        start local 11 // int remainingToAllocate
        16: .line 251
      StackMap locals: int
      StackMap stack:
            lload 8 /* nextBlockAddress */
            lstore 12 /* currentBlockAddress */
        start local 12 // long currentBlockAddress
        17: .line 252
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.NEXT_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 8 /* nextBlockAddress */
        18: .line 253
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.ELEMENTS_IN_USE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 14 /* elementsInUse */
        start local 14 // int elementsInUse
        19: .line 254
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_SIZE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 15 /* blockSize */
        start local 15 // int blockSize
        20: .line 256
            iload 11 /* remainingToAllocate */
            iload 15 /* blockSize */
            iload 14 /* elementsInUse */
            isub
            isub
            istore 11 /* remainingToAllocate */
        21: .line 257
            iload 11 /* remainingToAllocate */
            ifgt 23
        22: .line 258
            goto 30
        23: .line 261
      StackMap locals: long int int
      StackMap stack:
            lload 8 /* nextBlockAddress */
            lconst_0
            lcmp
            ifne 16
        24: .line 262
            aload 0 /* this */
            aload 1 /* nd */
            iload 10 /* maxBlockSizeThatFitsInAChunk */
            iload 4 /* numElements */
            invokestatic java.lang.Math.min:(II)I
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.allocateNewBlock:(Lorg/eclipse/jdt/internal/core/nd/Nd;I)J
            lstore 8 /* nextBlockAddress */
        25: .line 263
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.NEXT_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            lload 8 /* nextBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JJ)V
        end local 15 // int blockSize
        end local 14 // int elementsInUse
        end local 12 // long currentBlockAddress
        26: .line 250
            goto 16
        end local 11 // int remainingToAllocate
        end local 10 // int maxBlockSizeThatFitsInAChunk
        end local 8 // long nextBlockAddress
        end local 6 // long headerStartAddress
        27: .line 266
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldList org.eclipse.jdt.internal.core.nd.Nd long int org.eclipse.jdt.internal.core.nd.db.Database
      StackMap stack: java.lang.Throwable
            astore 16
        28: .line 267
            aload 5 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.allocateTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
        29: .line 268
            aload 16
            athrow
        30: .line 267
      StackMap locals:
      StackMap stack:
            aload 5 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.allocateTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
        31: .line 269
            return
        end local 5 // org.eclipse.jdt.internal.core.nd.db.Database db
        end local 4 // int numElements
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   32     0                          this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0   32     1                            nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0   32     2                       address  J
            0   32     4                   numElements  I
            1   32     5                            db  Lorg/eclipse/jdt/internal/core/nd/db/Database;
            6   27     6            headerStartAddress  J
            7   27     8              nextBlockAddress  J
           10   27    10  maxBlockSizeThatFitsInAChunk  I
           12   15    11               firstAllocation  I
           16   27    11           remainingToAllocate  I
           17   26    12           currentBlockAddress  J
           19   26    14                 elementsInUse  I
           20   26    15                     blockSize  I
      Exception table:
        from    to  target  type
           2     3      27  any
           5    27      27  any
    MethodParameters:
             Name  Flags
      nd           
      address      
      numElements  

  private long allocateNewBlock(org.eclipse.jdt.internal.core.nd.Nd, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;I)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // int blockSize
         0: .line 272
            aload 0 /* this */
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getMemoryPoolId:(Lorg/eclipse/jdt/internal/core/nd/Nd;)S
            istore 3 /* poolId */
        start local 3 // short poolId
         1: .line 273
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getElementSize:()I
            istore 4 /* elementSize */
        start local 4 // int elementSize
         2: .line 274
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_HEADER_BYTES:I
            iload 2 /* blockSize */
            iload 4 /* elementSize */
            imul
            iadd
            i2l
            lstore 5 /* bytesNeeded */
        start local 5 // long bytesNeeded
         3: .line 278
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.MAX_BYTES_IN_A_CHUNK:J
            lload 5 /* bytesNeeded */
            lsub
            iload 4 /* elementSize */
            i2l
            lcmp
            ifge 5
         4: .line 279
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.MAX_BYTES_IN_A_CHUNK:J
            lstore 5 /* bytesNeeded */
         5: .line 281
      StackMap locals: int int long
      StackMap stack:
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            lload 5 /* bytesNeeded */
            iload 3 /* poolId */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.malloc:(JS)J
            lstore 7 /* result */
        start local 7 // long result
         6: .line 282
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_SIZE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 7 /* result */
            iload 2 /* blockSize */
            i2s
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.put:(Lorg/eclipse/jdt/internal/core/nd/Nd;JS)V
         7: .line 283
            lload 7 /* result */
            lreturn
        end local 7 // long result
        end local 5 // long bytesNeeded
        end local 4 // int elementSize
        end local 3 // short poolId
        end local 2 // int blockSize
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0    8     1           nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    8     2    blockSize  I
            1    8     3       poolId  S
            2    8     4  elementSize  I
            3    8     5  bytesNeeded  J
            6    8     7       result  J
    MethodParameters:
           Name  Flags
      nd         
      blockSize  

  private short getMemoryPoolId(org.eclipse.jdt.internal.core.nd.Nd);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;)S
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
         0: .line 287
            iconst_5
            istore 2 /* poolId */
        start local 2 // short poolId
         1: .line 288
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.ownerType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            ifnull 5
         2: .line 289
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.ownerType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructClass:()Ljava/lang/Class;
            astore 3 /* structClass */
        start local 3 // java.lang.Class structClass
         3: .line 290
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getTypeRegistry:()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
            aload 3 /* structClass */
            invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.isRegisteredClass:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 291
            sipush 256
            aload 1 /* nd */
            aload 3 /* structClass */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getNodeType:(Ljava/lang/Class;)S
            iadd
            i2s
            istore 2 /* poolId */
        end local 3 // java.lang.Class structClass
         5: .line 294
      StackMap locals: int
      StackMap stack:
            iload 2 /* poolId */
            ireturn
        end local 2 // short poolId
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0    6     1           nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            1    6     2       poolId  S
            3    5     3  structClass  Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      nd    

  public void destruct(org.eclipse.jdt.internal.core.nd.Nd, long);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=16, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long address
         0: .line 299
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            astore 4 /* db */
        start local 4 // org.eclipse.jdt.internal.core.nd.db.Database db
         1: .line 300
            aload 4 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.start:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
         2: .line 302
            aload 0 /* this */
            aload 1 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getMemoryPoolId:(Lorg/eclipse/jdt/internal/core/nd/Nd;)S
            istore 5 /* poolId */
        start local 5 // short poolId
         3: .line 303
            lload 2 /* address */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.offset:I
            i2l
            ladd
            lstore 6 /* headerStartAddress */
        start local 6 // long headerStartAddress
         4: .line 304
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList.FIRST_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 6 /* headerStartAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 8 /* firstBlockAddress */
        start local 8 // long firstBlockAddress
         5: .line 306
            lload 8 /* firstBlockAddress */
            lstore 10 /* nextBlockAddress */
        start local 10 // long nextBlockAddress
         6: .line 307
            goto 12
         7: .line 308
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldList org.eclipse.jdt.internal.core.nd.Nd long org.eclipse.jdt.internal.core.nd.db.Database int long long long
      StackMap stack:
            lload 10 /* nextBlockAddress */
            lstore 12 /* currentBlockAddress */
        start local 12 // long currentBlockAddress
         8: .line 309
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.NEXT_BLOCK:Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldPointer.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)J
            lstore 10 /* nextBlockAddress */
         9: .line 310
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.ELEMENTS_IN_USE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
            istore 14 /* elementsInBlock */
        start local 14 // int elementsInBlock
        10: .line 311
            aload 0 /* this */
            aload 1 /* nd */
            lload 12 /* currentBlockAddress */
            getstatic org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader.BLOCK_HEADER_BYTES:I
            i2l
            ladd
            iload 14 /* elementsInBlock */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.destructElements:(Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
        11: .line 312
            aload 4 /* db */
            lload 12 /* currentBlockAddress */
            iload 5 /* poolId */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.free:(JS)V
        end local 14 // int elementsInBlock
        end local 12 // long currentBlockAddress
        12: .line 307
      StackMap locals:
      StackMap stack:
            lload 10 /* nextBlockAddress */
            lconst_0
            lcmp
            ifne 7
        13: .line 315
            aload 4 /* db */
            lload 6 /* headerStartAddress */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getRecordSize:()I
            i2l
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.clearRange:(JJ)V
        end local 10 // long nextBlockAddress
        end local 8 // long firstBlockAddress
        end local 6 // long headerStartAddress
        end local 5 // short poolId
        14: .line 316
            goto 18
      StackMap locals: org.eclipse.jdt.internal.core.nd.field.FieldList org.eclipse.jdt.internal.core.nd.Nd long org.eclipse.jdt.internal.core.nd.db.Database
      StackMap stack: java.lang.Throwable
        15: astore 15
        16: .line 317
            aload 4 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
        17: .line 318
            aload 15
            athrow
        18: .line 317
      StackMap locals:
      StackMap stack:
            aload 4 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.end:(Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;)V
        19: .line 319
            return
        end local 4 // org.eclipse.jdt.internal.core.nd.db.Database db
        end local 2 // long address
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0   20     1                   nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0   20     2              address  J
            1   20     4                   db  Lorg/eclipse/jdt/internal/core/nd/db/Database;
            3   14     5               poolId  S
            4   14     6   headerStartAddress  J
            5   14     8    firstBlockAddress  J
            6   14    10     nextBlockAddress  J
            8   12    12  currentBlockAddress  J
           10   12    14      elementsInBlock  I
      Exception table:
        from    to  target  type
           2    15      15  any
    MethodParameters:
         Name  Flags
      nd       
      address  

  private void destructElements(org.eclipse.jdt.internal.core.nd.Nd, long, int);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;JI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        start local 2 // long nextElementAddress
        start local 4 // int count
         0: .line 322
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.field.FieldList.elementType:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
            invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getFactory:()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
            astore 5 /* factory */
        start local 5 // org.eclipse.jdt.internal.core.nd.ITypeFactory factory
         1: .line 324
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldList.getElementSize:()I
            istore 6 /* size */
        start local 6 // int size
         2: .line 325
            goto 5
         3: .line 326
      StackMap locals: org.eclipse.jdt.internal.core.nd.ITypeFactory int
      StackMap stack:
            aload 5 /* factory */
            aload 1 /* nd */
            lload 2 /* nextElementAddress */
            invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.destruct:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
         4: .line 327
            lload 2 /* nextElementAddress */
            iload 6 /* size */
            i2l
            ladd
            lstore 2 /* nextElementAddress */
         5: .line 325
      StackMap locals:
      StackMap stack:
            iinc 4 /* count */ -1
            iload 4 /* count */
            ifge 3
         6: .line 329
            return
        end local 6 // int size
        end local 5 // org.eclipse.jdt.internal.core.nd.ITypeFactory factory
        end local 4 // int count
        end local 2 // long nextElementAddress
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 0 // org.eclipse.jdt.internal.core.nd.field.FieldList this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/eclipse/jdt/internal/core/nd/field/FieldList<TT;>;
            0    7     1                  nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0    7     2  nextElementAddress  J
            0    7     4               count  I
            1    7     5             factory  Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TT;>;
            2    7     6                size  I
    MethodParameters:
                    Name  Flags
      nd                  
      nextElementAddress  
      count               
}
Signature: <T:Ljava/lang/Object;>Lorg/eclipse/jdt/internal/core/nd/field/BaseField;Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;
SourceFile: "FieldList.java"
NestMembers:
  org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader
InnerClasses:
  public Tag = org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag of org.eclipse.jdt.internal.core.nd.db.ModificationLog
  private BlockHeader = org.eclipse.jdt.internal.core.nd.field.FieldList$BlockHeader of org.eclipse.jdt.internal.core.nd.field.FieldList