public class com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter implements com.oracle.svm.core.genscavenge.ImageHeapChunkWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter
  super_class: java.lang.Object
{
  private final org.graalvm.word.Pointer heapBegin;
    descriptor: Lorg/graalvm/word/Pointer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.word.Word layoutToBufferOffsetAddend;
    descriptor: Lorg/graalvm/compiler/word/Word;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // long layoutToBufferOffsetAddend
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 1 /* buffer */
            checkcast sun.nio.ch.DirectBuffer
            astore 4 /* direct */
        start local 4 // sun.nio.ch.DirectBuffer direct
         2: .line 44
            aload 0 /* this */
            aload 4 /* direct */
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.word.Pointer
            putfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.heapBegin:Lorg/graalvm/word/Pointer;
         3: .line 45
            aload 0 /* this */
            lload 2 /* layoutToBufferOffsetAddend */
            invokestatic org.graalvm.word.WordFactory.signed:(J)Lorg/graalvm/word/SignedWord;
            checkcast org.graalvm.compiler.word.Word
            putfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.layoutToBufferOffsetAddend:Lorg/graalvm/compiler/word/Word;
         4: .line 46
            return
        end local 4 // sun.nio.ch.DirectBuffer direct
        end local 2 // long layoutToBufferOffsetAddend
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    5     0                        this  Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
            0    5     1                      buffer  Ljava/nio/ByteBuffer;
            0    5     2  layoutToBufferOffsetAddend  J
            2    5     4                      direct  Lsun/nio/ch/DirectBuffer;
    MethodParameters:
                            Name  Flags
      buffer                      
      layoutToBufferOffsetAddend  

  private org.graalvm.word.Pointer getChunkPointerInBuffer(int);
    descriptor: (I)Lorg/graalvm/word/Pointer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
        start local 1 // int chunkPosition
         0: .line 49
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.heapBegin:Lorg/graalvm/word/Pointer;
            iload 1 /* chunkPosition */
            invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.layoutToBufferOffsetAddend:Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            areturn
        end local 1 // int chunkPosition
        end local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
            0    1     1  chunkPosition  I
    MethodParameters:
               Name  Flags
      chunkPosition  

  public void initializeAlignedChunk(int, long, long, long, long);
    descriptor: (IJJJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=6
        start local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
        start local 1 // int chunkPosition
        start local 2 // long topOffset
        start local 4 // long endOffset
        start local 6 // long offsetToPreviousChunk
        start local 8 // long offsetToNextChunk
         0: .line 54
            aload 0 /* this */
            iload 1 /* chunkPosition */
            invokevirtual com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.getChunkPointerInBuffer:(I)Lorg/graalvm/word/Pointer;
            checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
            astore 10 /* header */
        start local 10 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader header
         1: .line 55
            aload 10 /* header */
            lload 2 /* topOffset */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setTopOffset:(Lorg/graalvm/word/UnsignedWord;)V
         2: .line 56
            aload 10 /* header */
            lload 4 /* endOffset */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setEndOffset:(Lorg/graalvm/word/UnsignedWord;)V
         3: .line 57
            aload 10 /* header */
            aconst_null
            invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setSpace:(Lcom/oracle/svm/core/genscavenge/Space;)V
         4: .line 58
            aload 10 /* header */
            lload 6 /* offsetToPreviousChunk */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.word.SignedWord
            invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setOffsetToPreviousChunk:(Lorg/graalvm/word/SignedWord;)V
         5: .line 59
            aload 10 /* header */
            lload 8 /* offsetToNextChunk */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.word.SignedWord
            invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setOffsetToNextChunk:(Lorg/graalvm/word/SignedWord;)V
         6: .line 61
            aload 10 /* header */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
            aload 10 /* header */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getCardTableLimit:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
            invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
            pop
         7: .line 62
            aload 10 /* header */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
            aload 10 /* header */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableLimit:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
            invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.initializeTableToLimit:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
            pop
         8: .line 63
            return
        end local 10 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader header
        end local 8 // long offsetToNextChunk
        end local 6 // long offsetToPreviousChunk
        end local 4 // long endOffset
        end local 2 // long topOffset
        end local 1 // int chunkPosition
        end local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
            0    9     1          chunkPosition  I
            0    9     2              topOffset  J
            0    9     4              endOffset  J
            0    9     6  offsetToPreviousChunk  J
            0    9     8      offsetToNextChunk  J
            1    9    10                 header  Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
    MethodParameters:
                       Name  Flags
      chunkPosition          
      topOffset              
      endOffset              
      offsetToPreviousChunk  
      offsetToNextChunk      

  public void insertIntoAlignedChunkFirstObjectTable(int, long, long);
    descriptor: (IJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
        start local 1 // int chunkPosition
        start local 2 // long objectOffsetInChunk
        start local 4 // long objectEndOffsetInChunk
         0: .line 67
            aload 0 /* this */
            iload 1 /* chunkPosition */
            invokevirtual com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.getChunkPointerInBuffer:(I)Lorg/graalvm/word/Pointer;
            checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
            astore 6 /* header */
        start local 6 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader header
         1: .line 68
            aload 6 /* header */
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
         2: .line 69
            lload 2 /* objectOffsetInChunk */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStartOffset:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
         3: .line 70
            lload 4 /* objectEndOffsetInChunk */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStartOffset:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
         4: .line 68
            invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setTableForObjectAtOffsetUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
         5: .line 71
            return
        end local 6 // com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader header
        end local 4 // long objectEndOffsetInChunk
        end local 2 // long objectOffsetInChunk
        end local 1 // int chunkPosition
        end local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    6     0                    this  Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
            0    6     1           chunkPosition  I
            0    6     2     objectOffsetInChunk  J
            0    6     4  objectEndOffsetInChunk  J
            1    6     6                  header  Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
    MethodParameters:
                        Name  Flags
      chunkPosition           
      objectOffsetInChunk     
      objectEndOffsetInChunk  

  public void initializeUnalignedChunk(int, long, long, long, long);
    descriptor: (IJJJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=6
        start local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
        start local 1 // int chunkPosition
        start local 2 // long topOffset
        start local 4 // long endOffset
        start local 6 // long offsetToPreviousChunk
        start local 8 // long offsetToNextChunk
         0: .line 75
            aload 0 /* this */
            iload 1 /* chunkPosition */
            invokevirtual com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.getChunkPointerInBuffer:(I)Lorg/graalvm/word/Pointer;
            checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
            astore 10 /* header */
        start local 10 // com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader header
         1: .line 76
            aload 10 /* header */
            lload 2 /* topOffset */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setTopOffset:(Lorg/graalvm/word/UnsignedWord;)V
         2: .line 77
            aload 10 /* header */
            lload 4 /* endOffset */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setEndOffset:(Lorg/graalvm/word/UnsignedWord;)V
         3: .line 78
            aload 10 /* header */
            aconst_null
            invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setSpace:(Lcom/oracle/svm/core/genscavenge/Space;)V
         4: .line 79
            aload 10 /* header */
            lload 6 /* offsetToPreviousChunk */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.word.SignedWord
            invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setOffsetToPreviousChunk:(Lorg/graalvm/word/SignedWord;)V
         5: .line 80
            aload 10 /* header */
            lload 8 /* offsetToNextChunk */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            checkcast org.graalvm.word.SignedWord
            invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setOffsetToNextChunk:(Lorg/graalvm/word/SignedWord;)V
         6: .line 82
            aload 10 /* header */
            invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
            aload 10 /* header */
            invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableLimit:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
            invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
            pop
         7: .line 83
            return
        end local 10 // com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader header
        end local 8 // long offsetToNextChunk
        end local 6 // long offsetToPreviousChunk
        end local 4 // long endOffset
        end local 2 // long topOffset
        end local 1 // int chunkPosition
        end local 0 // com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
            0    8     1          chunkPosition  I
            0    8     2              topOffset  J
            0    8     4              endOffset  J
            0    8     6  offsetToPreviousChunk  J
            0    8     8      offsetToNextChunk  J
            1    8    10                 header  Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
    MethodParameters:
                       Name  Flags
      chunkPosition          
      topOffset              
      endOffset              
      offsetToPreviousChunk  
      offsetToNextChunk      
}
SourceFile: "RuntimeImageHeapChunkWriter.java"
InnerClasses:
  public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
  public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk