class com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesToForwardedObjectsVisitor 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.HeapVerifier$NoReferencesToForwardedObjectsVisitor
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesToForwardedObjectsVisitor this
         0: .line 375
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesToForwardedObjectsVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapVerifier$NoReferencesToForwardedObjectsVisitor;

  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.HeapVerifier$NoReferencesToForwardedObjectsVisitor this
        start local 1 // org.graalvm.word.Pointer objRef
        start local 2 // boolean compressed
         0: .line 378
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            astore 3 /* heap */
        start local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
         1: .line 379
            aload 3 /* heap */
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            astore 4 /* verifier */
        start local 4 // com.oracle.svm.core.genscavenge.HeapVerifier verifier
         2: .line 380
            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 5 /* objPointer */
        start local 5 // org.graalvm.word.Pointer objPointer
         3: .line 381
            aload 5 /* objPointer */
            invokeinterface org.graalvm.word.Pointer.isNull:()Z
            ifeq 5
         4: .line 382
            iconst_1
            ireturn
         5: .line 384
      StackMap locals: com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.HeapVerifier org.graalvm.word.Pointer
      StackMap stack:
            aload 5 /* objPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.isPointerToForwardedObjectCarefully:(Lorg/graalvm/word/Pointer;)Z
            ifeq 17
         6: .line 385
            aconst_null
            astore 6
            aconst_null
            astore 7
         7: aload 4 /* verifier */
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
            astore 8 /* witness */
        start local 8 // com.oracle.svm.core.log.Log witness
         8: .line 386
            aload 8 /* witness */
            ldc "[HeapVerifier.noReferencesToForwardedObjectsVerifier:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            ldc "  cause: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* verifier */
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getCurrentCause:()Ljava/lang/String;
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
         9: .line 387
            aload 8 /* witness */
            ldc "  contains fieldPointer: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* objPointer */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  to forwarded object at: "
            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 "]"
            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
        10: .line 388
            aload 8 /* witness */
            ifnull 16
            aload 8 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
            goto 16
      StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesToForwardedObjectsVisitor org.graalvm.word.Pointer int com.oracle.svm.core.genscavenge.HeapImpl com.oracle.svm.core.genscavenge.HeapVerifier org.graalvm.word.Pointer java.lang.Throwable java.lang.Throwable com.oracle.svm.core.log.Log
      StackMap stack: java.lang.Throwable
        11: astore 6
            aload 8 /* witness */
            ifnull 12
            aload 8 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
        end local 8 // com.oracle.svm.core.log.Log witness
      StackMap locals:
      StackMap stack:
        12: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 7
            aload 6
            ifnonnull 14
            aload 7
            astore 6
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 6
            aload 7
            if_acmpeq 15
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 6
            athrow
        16: .line 389
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        17: .line 391
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // org.graalvm.word.Pointer objPointer
        end local 4 // com.oracle.svm.core.genscavenge.HeapVerifier verifier
        end local 3 // com.oracle.svm.core.genscavenge.HeapImpl heap
        end local 2 // boolean compressed
        end local 1 // org.graalvm.word.Pointer objRef
        end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesToForwardedObjectsVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/oracle/svm/core/genscavenge/HeapVerifier$NoReferencesToForwardedObjectsVisitor;
            0   18     1      objRef  Lorg/graalvm/word/Pointer;
            0   18     2  compressed  Z
            1   18     3        heap  Lcom/oracle/svm/core/genscavenge/HeapImpl;
            2   18     4    verifier  Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            3   18     5  objPointer  Lorg/graalvm/word/Pointer;
            8   12     8     witness  Lcom/oracle/svm/core/log/Log;
      Exception table:
        from    to  target  type
           8    10      11  any
           7    13      13  any
    MethodParameters:
            Name  Flags
      objRef      
      compressed  
}
SourceFile: "HeapVerifier.java"
NestHost: com.oracle.svm.core.genscavenge.HeapVerifier
InnerClasses:
  private NoReferencesToForwardedObjectsVisitor = com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesToForwardedObjectsVisitor of com.oracle.svm.core.genscavenge.HeapVerifier