abstract class com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase implements com.oracle.svm.core.MemoryWalker$NativeImageHeapRegionAccess<com.oracle.svm.core.genscavenge.ImageHeapInfo>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase
  super_class: java.lang.Object
{
  private final java.lang.String regionName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  void <init>(java.lang.String, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZZ)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // java.lang.String regionName
        start local 2 // boolean containsReferences
        start local 3 // boolean isWritable
        start local 4 // boolean hasHugeObjects
         0: .line 163
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 164
            aload 0 /* this */
            aload 1 /* regionName */
            putfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.regionName:Ljava/lang/String;
         2: .line 165
            aload 0 /* this */
            iload 2 /* containsReferences */
            putfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.containsReferences:Z
         3: .line 166
            aload 0 /* this */
            iload 3 /* isWritable */
            putfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.isWritable:Z
         4: .line 167
            aload 0 /* this */
            iload 4 /* hasHugeObjects */
            putfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.hasHugeObjects:Z
         5: .line 168
            return
        end local 4 // boolean hasHugeObjects
        end local 3 // boolean isWritable
        end local 2 // boolean containsReferences
        end local 1 // java.lang.String regionName
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    6     1          regionName  Ljava/lang/String;
            0    6     2  containsReferences  Z
            0    6     3          isWritable  Z
            0    6     4      hasHugeObjects  Z
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
    MethodParameters:
                    Name  Flags
      regionName          
      containsReferences  
      isWritable          
      hasHugeObjects      

  public org.graalvm.word.UnsignedWord getStart(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo info
         0: .line 172
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getFirstObject:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            areturn
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo info
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    1     1  info  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    MethodParameters:
      Name  Flags
      info  

  public org.graalvm.word.UnsignedWord getSize(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo info
         0: .line 177
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getFirstObject:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
            invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
            astore 2 /* firstStart */
        start local 2 // org.graalvm.word.Pointer firstStart
         1: .line 178
            aload 2 /* firstStart */
            invokeinterface org.graalvm.word.Pointer.isNull:()Z
            ifeq 3
         2: .line 179
            invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.word.UnsignedWord
            areturn
         3: .line 181
      StackMap locals: org.graalvm.word.Pointer
      StackMap stack:
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getLastObject:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
            invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
            astore 3 /* lastEnd */
        start local 3 // org.graalvm.word.Pointer lastEnd
         4: .line 182
            aload 3 /* lastEnd */
            aload 2 /* firstStart */
            invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
            areturn
        end local 3 // org.graalvm.word.Pointer lastEnd
        end local 2 // org.graalvm.word.Pointer firstStart
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo info
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    5     1        info  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            1    5     2  firstStart  Lorg/graalvm/word/Pointer;
            4    5     3     lastEnd  Lorg/graalvm/word/Pointer;
    MethodParameters:
      Name  Flags
      info  

  public java.lang.String getRegionName(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
         0: .line 187
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.regionName:Ljava/lang/String;
            areturn
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    1     1  region  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    MethodParameters:
        Name  Flags
      region  

  public boolean containsReferences(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
         0: .line 192
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.containsReferences:Z
            ireturn
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    1     1  region  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    MethodParameters:
        Name  Flags
      region  

  public boolean isWritable(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
         0: .line 197
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.isWritable:Z
            ireturn
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    1     1  region  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
    MethodParameters:
        Name  Flags
      region  

  public final boolean visitObjects(com.oracle.svm.core.genscavenge.ImageHeapInfo, com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
        start local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
        start local 2 // com.oracle.svm.core.heap.ObjectVisitor visitor
         0: .line 203
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.hasHugeObjects:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* alignedChunks */
        start local 3 // boolean alignedChunks
         3: .line 204
            aload 0 /* this */
            aload 1 /* region */
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getFirstObject:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
            aload 0 /* this */
            aload 1 /* region */
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getLastObject:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
            aload 2 /* visitor */
            iload 3 /* alignedChunks */
            invokestatic com.oracle.svm.core.genscavenge.ImageHeapWalker.walkPartitionInline:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/svm/core/heap/ObjectVisitor;Z)Z
            ireturn
        end local 3 // boolean alignedChunks
        end local 2 // com.oracle.svm.core.heap.ObjectVisitor visitor
        end local 1 // com.oracle.svm.core.genscavenge.ImageHeapInfo region
        end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/svm/core/genscavenge/MemoryWalkerAccessBase;
            0    4     1         region  Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;
            0    4     2        visitor  Lcom/oracle/svm/core/heap/ObjectVisitor;
            3    4     3  alignedChunks  Z
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.AlwaysInline(value = "GC performance")
    MethodParameters:
         Name  Flags
      region   
      visitor  

  protected abstract java.lang.Object getFirstObject(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      info  

  protected abstract java.lang.Object getLastObject(com.oracle.svm.core.genscavenge.ImageHeapInfo);
    descriptor: (Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      info  

  public boolean visitObjects(java.lang.Object, com.oracle.svm.core.heap.ObjectVisitor);
    descriptor: (Ljava/lang/Object;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.svm.core.genscavenge.ImageHeapInfo
            aload 2
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.visitObjects:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;Lcom/oracle/svm/core/heap/ObjectVisitor;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean isWritable(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.svm.core.genscavenge.ImageHeapInfo
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.isWritable:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String getRegionName(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.svm.core.genscavenge.ImageHeapInfo
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getRegionName:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.graalvm.word.UnsignedWord getSize(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.svm.core.genscavenge.ImageHeapInfo
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getSize:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Lorg/graalvm/word/UnsignedWord;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.graalvm.word.UnsignedWord getStart(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/word/UnsignedWord;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.svm.core.genscavenge.ImageHeapInfo
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.getStart:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Lorg/graalvm/word/UnsignedWord;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean containsReferences(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.svm.core.genscavenge.ImageHeapInfo
            invokevirtual com.oracle.svm.core.genscavenge.MemoryWalkerAccessBase.containsReferences:(Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lcom/oracle/svm/core/MemoryWalker$NativeImageHeapRegionAccess<Lcom/oracle/svm/core/genscavenge/ImageHeapInfo;>;
SourceFile: "ImageHeapWalker.java"
InnerClasses:
  public abstract NativeImageHeapRegionAccess = com.oracle.svm.core.MemoryWalker$NativeImageHeapRegionAccess of com.oracle.svm.core.MemoryWalker