public class com.oracle.svm.core.genscavenge.LinearImageHeapLayouter extends com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter<com.oracle.svm.core.genscavenge.LinearImageHeapPartition>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.LinearImageHeapLayouter
  super_class: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter
{
  private final com.oracle.svm.core.genscavenge.ImageHeapInfo heapInfo;
    descriptor: Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long startOffset;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean compressedNullPadding;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(com.oracle.svm.core.genscavenge.ImageHeapInfo, long, boolean);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;JZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo heapInfo
        start local 2 // long startOffset
        start local 4 // boolean compressedNullPadding
         0: .line 36
            aload 0 /* this */
            invokespecial com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter.<init>:()V
         1: .line 37
            aload 0 /* this */
            aload 1 /* heapInfo */
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.heapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
         2: .line 38
            aload 0 /* this */
            lload 2 /* startOffset */
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.startOffset:J
         3: .line 39
            aload 0 /* this */
            iload 4 /* compressedNullPadding */
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.compressedNullPadding:Z
         4: .line 40
            return
        end local 4 // boolean compressedNullPadding
        end local 2 // long startOffset
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo heapInfo
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapLayouter;
            0    5     1               heapInfo  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            0    5     2            startOffset  J
            0    5     4  compressedNullPadding  Z
    MethodParameters:
                       Name  Flags
      heapInfo               
      startOffset            
      compressedNullPadding  

  protected com.oracle.svm.core.genscavenge.LinearImageHeapPartition[] createPartitionsArray(int);
    descriptor: (I)[Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
        start local 1 // int count
         0: .line 44
            iload 1 /* count */
            anewarray com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            areturn
        end local 1 // int count
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapLayouter;
            0    1     1  count  I
    MethodParameters:
       Name  Flags
      count  

  protected com.oracle.svm.core.genscavenge.LinearImageHeapPartition createPartition(java.lang.String, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
        start local 1 // java.lang.String name
        start local 2 // boolean containsReferences
        start local 3 // boolean writable
        start local 4 // boolean hugeObjects
         0: .line 49
            new com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            dup
            aload 1 /* name */
            iload 3 /* writable */
            invokespecial com.oracle.svm.core.genscavenge.LinearImageHeapPartition.<init>:(Ljava/lang/String;Z)V
            areturn
        end local 4 // boolean hugeObjects
        end local 3 // boolean writable
        end local 2 // boolean containsReferences
        end local 1 // java.lang.String name
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapLayouter;
            0    1     1                name  Ljava/lang/String;
            0    1     2  containsReferences  Z
            0    1     3            writable  Z
            0    1     4         hugeObjects  Z
    MethodParameters:
                    Name  Flags
      name                
      containsReferences  
      writable            
      hugeObjects         

  protected com.oracle.svm.core.image.ImageHeapLayoutInfo doLayout(com.oracle.svm.core.image.ImageHeap);
    descriptor: (Lcom/oracle/svm/core/image/ImageHeap;)Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
        start local 1 // com.oracle.svm.core.image.ImageHeap imageHeap
         0: .line 54
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.startOffset:J
            lstore 2 /* beginOffset */
        start local 2 // long beginOffset
         1: .line 55
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.compressedNullPadding:Z
            ifeq 3
         2: .line 60
            lload 2 /* beginOffset */
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
            i2l
            ladd
            lstore 2 /* beginOffset */
         3: .line 62
      StackMap locals: long
      StackMap stack:
            new com.oracle.svm.core.genscavenge.LinearImageHeapAllocator
            dup
            lload 2 /* beginOffset */
            invokespecial com.oracle.svm.core.genscavenge.LinearImageHeapAllocator.<init>:(J)V
            astore 4 /* allocator */
        start local 4 // com.oracle.svm.core.genscavenge.LinearImageHeapAllocator allocator
         4: .line 63
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getPartitions:()[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition[]
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 8
      StackMap locals: com.oracle.svm.core.genscavenge.LinearImageHeapLayouter com.oracle.svm.core.image.ImageHeap long com.oracle.svm.core.genscavenge.LinearImageHeapAllocator top int int com.oracle.svm.core.genscavenge.LinearImageHeapPartition[]
      StackMap stack:
         5: aload 8
            iload 6
            aaload
            astore 5 /* partition */
        start local 5 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition partition
         6: .line 64
            aload 5 /* partition */
            aload 4 /* allocator */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.allocateObjects:(Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;)V
        end local 5 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition partition
         7: .line 63
            iinc 6 1
      StackMap locals:
      StackMap stack:
         8: iload 6
            iload 7
            if_icmplt 5
         9: .line 66
            aload 0 /* this */
            aload 1 /* imageHeap */
            invokeinterface com.oracle.svm.core.image.ImageHeap.countDynamicHubs:()I
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.initializeHeapInfo:(I)V
        10: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.startOffset:J
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritablePrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.getStartOffset:()J
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.createLayoutInfo:(JJ)Lcom/oracle/svm/core/image/ImageHeapLayoutInfo;
            areturn
        end local 4 // com.oracle.svm.core.genscavenge.LinearImageHeapAllocator allocator
        end local 2 // long beginOffset
        end local 1 // com.oracle.svm.core.image.ImageHeap imageHeap
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapLayouter;
            0   11     1    imageHeap  Lcom/oracle/svm/core/image/ImageHeap;
            1   11     2  beginOffset  J
            4   11     4    allocator  Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;
            6    7     5    partition  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
    MethodParameters:
           Name  Flags
      imageHeap  

  private void initializeHeapInfo(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=20, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
        start local 1 // int dynamicHubCount
         0: .line 75
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.heapInfo:Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyPrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyPrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyReference:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyReference:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
         1: .line 76
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyRelocatable:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyRelocatable:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritablePrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritablePrimitive:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
         2: .line 77
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritableReference:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritableReference:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritableHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getWritableHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
         3: .line 78
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.getReadOnlyHuge:()Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
            checkcast com.oracle.svm.core.genscavenge.LinearImageHeapPartition
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
            ldc -1
            ldc -1
            iload 1 /* dynamicHubCount */
         4: .line 75
            invokevirtual com.oracle.svm.core.genscavenge.ImageHeapInfo.initialize:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;JJI)V
         5: .line 79
            return
        end local 1 // int dynamicHubCount
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapLayouter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapLayouter;
            0    6     1  dynamicHubCount  I
    MethodParameters:
                 Name  Flags
      dynamicHubCount  

  protected com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition[] createPartitionsArray(int);
    descriptor: (I)[Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.createPartitionsArray:(I)[Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition createPartition(java.lang.String, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter$AbstractImageHeapPartition;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
         0: .line 1
            aload 0
            aload 1
            iload 2
            iload 3
            iload 4
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapLayouter.createPartition:(Ljava/lang/String;ZZZ)Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lcom/oracle/svm/core/genscavenge/AbstractImageHeapLayouter<Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;>;
SourceFile: "LinearImageHeapLayouter.java"
InnerClasses:
  public abstract AbstractImageHeapPartition = com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition of com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter