class com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor implements com.oracle.svm.core.heap.ObjectReferenceVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor
  super_class: java.lang.Object
{
  private boolean found;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean witnessForDebugging;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
         0: .line 385
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 386
            return
        end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
         0: .line 389
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.found:Z
         1: .line 390
            return
        end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;

  public boolean visitObjectReference(org.graalvm.word.Pointer, boolean);
    descriptor: (Lorg/graalvm/word/Pointer;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
        start local 1 // org.graalvm.word.Pointer objRef
        start local 2 // boolean compressed
         0: .line 394
            invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
            ldc "[ReferenceToYoungObjectReferenceVisitor.visitObjectReference: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  objRef: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* objRef */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            astore 3 /* trace */
        start local 3 // com.oracle.svm.core.log.Log trace
         1: .line 395
            invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
            aload 1 /* objRef */
            iload 2 /* compressed */
            invokeinterface com.oracle.svm.core.heap.ReferenceAccess.readObjectAsUntrackedPointer:(Lorg/graalvm/word/Pointer;Z)Lorg/graalvm/compiler/word/Word;
            astore 4 /* p */
        start local 4 // org.graalvm.word.Pointer p
         2: .line 396
            aload 3 /* trace */
            ldc "  p: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* p */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
         3: .line 397
            aload 4 /* p */
            invokeinterface org.graalvm.word.Pointer.isNull:()Z
            ifeq 6
         4: .line 398
            aload 3 /* trace */
            ldc "  null pointer returns true]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
         5: .line 399
            iconst_1
            ireturn
         6: .line 403
      StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.Pointer
      StackMap stack:
            aload 4 /* p */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointer:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 5 /* header */
        start local 5 // org.graalvm.word.UnsignedWord header
         7: .line 404
            aload 5 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isProducedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 8
            aload 5 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isConsumedHeapChunkZapped:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 10
         8: .line 405
      StackMap locals: org.graalvm.word.UnsignedWord
      StackMap stack:
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[CardTable.ReferenceToYoungObjectReferenceVisitor.visitObjectReference:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 6 /* paranoidLog */
        start local 6 // com.oracle.svm.core.log.Log paranoidLog
         9: .line 406
            aload 6 /* paranoidLog */
            ldc "  objRef: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* objRef */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  p: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* p */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  points to zapped header: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* header */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        end local 6 // com.oracle.svm.core.log.Log paranoidLog
        10: .line 408
      StackMap locals:
      StackMap stack:
            aload 5 /* header */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isForwardedHeader:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 13
        11: .line 409
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[CardTable.ReferenceToYoungObjectReferenceVisitor.visitObjectReference:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 6 /* paranoidLog */
        start local 6 // com.oracle.svm.core.log.Log paranoidLog
        12: .line 410
            aload 6 /* paranoidLog */
            ldc "  objRef: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* objRef */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  p: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* p */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  points to header: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* header */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        end local 6 // com.oracle.svm.core.log.Log paranoidLog
        end local 5 // org.graalvm.word.UnsignedWord header
        13: .line 413
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
        14: .line 414
            aload 3 /* trace */
            ldc "  obj: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* obj */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            ldc " "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* obj */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            pop
        15: .line 415
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            aload 5 /* obj */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 416
            aload 3 /* trace */
            ldc "  non-heap allocated returns true]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        17: .line 417
            iconst_1
            ireturn
        18: .line 419
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* obj */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEnclosingHeapChunk:(Ljava/lang/Object;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
            astore 6 /* objChunk */
        start local 6 // com.oracle.svm.core.genscavenge.HeapChunk$Header objChunk
        19: .line 420
            aload 3 /* trace */
            ldc "  objChunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 6 /* objChunk */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
        20: .line 421
            aload 6 /* objChunk */
            invokeinterface com.oracle.svm.core.genscavenge.HeapChunk$Header.isNull:()Z
            ifeq 24
        21: .line 422
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[CardTable.ReferenceToYoungObjectReferenceVisitor.visitObjectReference:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            astore 7 /* failure */
        start local 7 // com.oracle.svm.core.log.Log failure
        22: .line 423
            aload 7 /* failure */
            ldc "  objRef: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* objRef */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  has no enclosing chunk"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        23: .line 424
            iconst_0
            ireturn
        end local 7 // com.oracle.svm.core.log.Log failure
        24: .line 426
      StackMap locals: com.oracle.svm.core.genscavenge.HeapChunk$Header
      StackMap stack:
            aload 6 /* objChunk */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
            astore 7 /* chunkSpace */
        start local 7 // com.oracle.svm.core.genscavenge.Space chunkSpace
        25: .line 427
            aload 3 /* trace */
            ldc "  chunkSpace: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 7 /* chunkSpace */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            ldc " "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 7 /* chunkSpace */
            invokevirtual com.oracle.svm.core.genscavenge.Space.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        26: .line 428
            aload 7 /* chunkSpace */
            invokevirtual com.oracle.svm.core.genscavenge.Space.isYoungSpace:()Z
            ifeq 34
        27: .line 429
            aload 0 /* this */
            iconst_1
            putfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.found:Z
        28: .line 430
            aload 0 /* this */
            getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.witnessForDebugging:Z
            ifeq 33
        29: .line 431
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[ReferenceToYoungObjectReferenceVisitor.visitObjectReference:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  witness"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            astore 8 /* witness */
        start local 8 // com.oracle.svm.core.log.Log witness
        30: .line 432
            aload 8 /* witness */
            ldc "  objRef: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 1 /* objRef */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  p: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* p */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  obj: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* obj */
            invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        31: .line 433
            aload 8 /* witness */
            ldc "  chunk: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 6 /* objChunk */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  chunk.getSpace(): "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 6 /* objChunk */
            invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/Space;
            invokevirtual com.oracle.svm.core.genscavenge.Space.getName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
        32: .line 434
            ldc "  found: true  returns false"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        end local 8 // com.oracle.svm.core.log.Log witness
        33: .line 436
      StackMap locals: com.oracle.svm.core.genscavenge.Space
      StackMap stack:
            iconst_1
            ireturn
        34: .line 438
      StackMap locals:
      StackMap stack:
            aload 3 /* trace */
            ldc "  returns true]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        35: .line 439
            iconst_1
            ireturn
        end local 7 // com.oracle.svm.core.genscavenge.Space chunkSpace
        end local 6 // com.oracle.svm.core.genscavenge.HeapChunk$Header objChunk
        end local 5 // java.lang.Object obj
        end local 4 // org.graalvm.word.Pointer p
        end local 3 // com.oracle.svm.core.log.Log trace
        end local 2 // boolean compressed
        end local 1 // org.graalvm.word.Pointer objRef
        end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0         this  Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
            0   36     1       objRef  Lorg/graalvm/word/Pointer;
            0   36     2   compressed  Z
            1   36     3        trace  Lcom/oracle/svm/core/log/Log;
            2   36     4            p  Lorg/graalvm/word/Pointer;
            7   13     5       header  Lorg/graalvm/word/UnsignedWord;
            9   10     6  paranoidLog  Lcom/oracle/svm/core/log/Log;
           12   13     6  paranoidLog  Lcom/oracle/svm/core/log/Log;
           14   36     5          obj  Ljava/lang/Object;
           19   36     6     objChunk  Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
           22   24     7      failure  Lcom/oracle/svm/core/log/Log;
           25   36     7   chunkSpace  Lcom/oracle/svm/core/genscavenge/Space;
           30   33     8      witness  Lcom/oracle/svm/core/log/Log;
    MethodParameters:
            Name  Flags
      objRef      
      compressed  

  private void setWitnessForDebugging(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
        start local 1 // boolean value
         0: .line 443
            aload 0 /* this */
            iload 1 /* value */
            putfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.witnessForDebugging:Z
         1: .line 444
            return
        end local 1 // boolean value
        end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "CardTable.java"
NestHost: com.oracle.svm.core.genscavenge.CardTable
InnerClasses:
  ReferenceToYoungObjectReferenceVisitor = com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor of com.oracle.svm.core.genscavenge.CardTable
  public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk