public class com.oracle.svm.core.genscavenge.LinearImageHeapPartition extends com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.LinearImageHeapPartition
  super_class: com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition
{
  java.lang.Object firstObject;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 

  java.lang.Object lastObject;
    descriptor: Ljava/lang/Object;
    flags: (0x0000) 

  long startOffset;
    descriptor: J
    flags: (0x0000) 

  long endOffset;
    descriptor: J
    flags: (0x0000) 

  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=1, locals=0, args_size=0
         0: .line 34
            ldc Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            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 com.oracle.svm.core.genscavenge.LinearImageHeapPartition.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
        start local 1 // java.lang.String name
        start local 2 // boolean writable
         0: .line 42
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* writable */
            invokespecial com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.<init>:(Ljava/lang/String;Z)V
         1: .line 38
            aload 0 /* this */
            ldc -1
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.startOffset:J
         2: .line 39
            aload 0 /* this */
            ldc -1
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.endOffset:J
         3: .line 43
            return
        end local 2 // boolean writable
        end local 1 // java.lang.String name
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            0    4     1      name  Ljava/lang/String;
            0    4     2  writable  Z
    MethodParameters:
          Name  Flags
      name      
      writable  

  void allocateObjects(com.oracle.svm.core.genscavenge.LinearImageHeapAllocator);
    descriptor: (Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
        start local 1 // com.oracle.svm.core.genscavenge.LinearImageHeapAllocator allocator
         0: .line 46
            aload 1 /* allocator */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.getStartAlignment:()I
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapAllocator.align:(I)V
         1: .line 47
            aload 0 /* this */
            aload 1 /* allocator */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapAllocator.getPosition:()J
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.startOffset:J
         2: .line 48
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.getObjects:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.oracle.svm.core.genscavenge.LinearImageHeapPartition com.oracle.svm.core.genscavenge.LinearImageHeapAllocator top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.core.image.ImageHeapObject
            astore 2 /* info */
        start local 2 // com.oracle.svm.core.image.ImageHeapObject info
         4: .line 49
            aload 0 /* this */
            aload 2 /* info */
            aload 1 /* allocator */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.allocate:(Lcom/oracle/svm/core/image/ImageHeapObject;Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;)V
        end local 2 // com.oracle.svm.core.image.ImageHeapObject info
         5: .line 48
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 51
            aload 1 /* allocator */
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.getEndAlignment:()I
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapAllocator.align:(I)V
         7: .line 52
            aload 0 /* this */
            aload 1 /* allocator */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapAllocator.getPosition:()J
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.endOffset:J
         8: .line 53
            return
        end local 1 // com.oracle.svm.core.genscavenge.LinearImageHeapAllocator allocator
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            0    9     1  allocator  Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;
            4    5     2       info  Lcom/oracle/svm/core/image/ImageHeapObject;
    MethodParameters:
           Name  Flags
      allocator  

  private void allocate(com.oracle.svm.core.image.ImageHeapObject, com.oracle.svm.core.genscavenge.LinearImageHeapAllocator);
    descriptor: (Lcom/oracle/svm/core/image/ImageHeapObject;Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
        start local 1 // com.oracle.svm.core.image.ImageHeapObject info
        start local 2 // com.oracle.svm.core.genscavenge.LinearImageHeapAllocator allocator
         0: .line 56
            getstatic com.oracle.svm.core.genscavenge.LinearImageHeapPartition.$assertionsDisabled:Z
            ifne 1
            aload 1 /* info */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getPartition:()Lcom/oracle/svm/core/image/ImageHeapPartition;
            aload 0 /* this */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
            ifnonnull 3
         2: .line 58
            aload 0 /* this */
            aload 1 /* info */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getObject:()Ljava/lang/Object;
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.firstObject:Ljava/lang/Object;
         3: .line 60
      StackMap locals:
      StackMap stack:
            aload 2 /* allocator */
            aload 1 /* info */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getSize:()J
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapAllocator.allocate:(J)J
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.startOffset:J
            lsub
            lstore 3 /* offsetInPartition */
        start local 3 // long offsetInPartition
         4: .line 61
            getstatic com.oracle.svm.core.genscavenge.LinearImageHeapPartition.$assertionsDisabled:Z
            ifne 5
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            lload 3 /* offsetInPartition */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.isAligned:(J)Z
            ifne 5
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "start: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* offsetInPartition */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " must be aligned."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 62
      StackMap locals: long
      StackMap stack:
            aload 1 /* info */
            lload 3 /* offsetInPartition */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.setOffsetInPartition:(J)V
         6: .line 63
            aload 0 /* this */
            aload 1 /* info */
            invokeinterface com.oracle.svm.core.image.ImageHeapObject.getObject:()Ljava/lang/Object;
            putfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.lastObject:Ljava/lang/Object;
         7: .line 64
            return
        end local 3 // long offsetInPartition
        end local 2 // com.oracle.svm.core.genscavenge.LinearImageHeapAllocator allocator
        end local 1 // com.oracle.svm.core.image.ImageHeapObject info
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            0    8     1               info  Lcom/oracle/svm/core/image/ImageHeapObject;
            0    8     2          allocator  Lcom/oracle/svm/core/genscavenge/LinearImageHeapAllocator;
            4    8     3  offsetInPartition  J
    MethodParameters:
           Name  Flags
      info       
      allocator  

  public void assign(com.oracle.svm.core.image.ImageHeapObject);
    descriptor: (Lcom/oracle/svm/core/image/ImageHeapObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
        start local 1 // com.oracle.svm.core.image.ImageHeapObject obj
         0: .line 68
            getstatic com.oracle.svm.core.genscavenge.LinearImageHeapPartition.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.startOffset:J
            ldc -1
            lcmp
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.endOffset:J
            ldc -1
            lcmp
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            ldc "Adding objects late is not supported"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition.assign:(Lcom/oracle/svm/core/image/ImageHeapObject;)V
         3: .line 70
            return
        end local 1 // com.oracle.svm.core.image.ImageHeapObject obj
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
            0    4     1   obj  Lcom/oracle/svm/core/image/ImageHeapObject;
    MethodParameters:
      Name  Flags
      obj   

  public long getStartOffset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
         0: .line 74
            getstatic com.oracle.svm.core.genscavenge.LinearImageHeapPartition.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.startOffset:J
            lconst_0
            lcmp
            ifge 1
            new java.lang.AssertionError
            dup
            ldc "Start offset not yet set"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.startOffset:J
            lreturn
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;

  public long getEndOffset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
         0: .line 79
            getstatic com.oracle.svm.core.genscavenge.LinearImageHeapPartition.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.endOffset:J
            lconst_0
            lcmp
            ifge 1
            new java.lang.AssertionError
            dup
            ldc "End offset not yet set"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.LinearImageHeapPartition.endOffset:J
            lreturn
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;

  public long getSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
         0: .line 85
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.getEndOffset:()J
            aload 0 /* this */
            invokevirtual com.oracle.svm.core.genscavenge.LinearImageHeapPartition.getStartOffset:()J
            lsub
            lreturn
        end local 0 // com.oracle.svm.core.genscavenge.LinearImageHeapPartition this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/LinearImageHeapPartition;
}
SourceFile: "LinearImageHeapPartition.java"
InnerClasses:
  public abstract AbstractImageHeapPartition = com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter$AbstractImageHeapPartition of com.oracle.svm.core.genscavenge.AbstractImageHeapLayouter