class com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor 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$NoReferencesOutsideHeapVisitor
  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$NoReferencesOutsideHeapVisitor this
         0: .line 312
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/genscavenge/HeapVerifier$NoReferencesOutsideHeapVisitor;

  public boolean visitObjectReference(org.graalvm.word.Pointer, boolean);
    descriptor: (Lorg/graalvm/word/Pointer;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor this
        start local 1 // org.graalvm.word.Pointer objRef
        start local 2 // boolean compressed
         0: .line 315
            invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
            invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            astore 3 /* verifier */
        start local 3 // com.oracle.svm.core.genscavenge.HeapVerifier verifier
         1: .line 316
            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 /* objPointer */
        start local 4 // org.graalvm.word.Pointer objPointer
         2: .line 317
            aload 4 /* objPointer */
            invokeinterface org.graalvm.word.Pointer.isNull:()Z
            ifeq 4
         3: .line 318
            iconst_1
            ireturn
         4: .line 320
      StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier org.graalvm.word.Pointer
      StackMap stack:
            iload 2 /* compressed */
            ifne 16
            aload 4 /* objPointer */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.Pointer.equal:(Lorg/graalvm/word/UnsignedWord;)Z
            ifne 5
            aload 4 /* objPointer */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokeinterface org.graalvm.word.Pointer.equal:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 16
         5: .line 321
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
         6: aload 3 /* verifier */
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
            astore 7 /* witness */
        start local 7 // com.oracle.svm.core.log.Log witness
         7: .line 322
            aload 7 /* witness */
            ldc "[HeapVerifier.NoReferencesOutsideHeapVisitor:"
            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 3 /* 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
         8: .line 323
            aload 7 /* witness */
            ldc "  contains zapped field Pointer: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* objPointer */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  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
         9: .line 324
            aload 7 /* witness */
            ifnull 15
            aload 7 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
            goto 15
      StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor org.graalvm.word.Pointer int 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
        10: astore 5
            aload 7 /* witness */
            ifnull 11
            aload 7 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
        end local 7 // com.oracle.svm.core.log.Log witness
      StackMap locals:
      StackMap stack:
        11: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 6
            aload 5
            ifnonnull 13
            aload 6
            astore 5
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 5
            aload 6
            if_acmpeq 14
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 5
            athrow
        15: .line 325
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 327
      StackMap locals:
      StackMap stack:
            aload 4 /* objPointer */
            invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.slowlyFindPointer:(Lorg/graalvm/word/Pointer;)Z
            ifne 33
        17: .line 328
            aconst_null
            astore 5
            aconst_null
            astore 6
        18: aload 3 /* verifier */
            invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
            astore 7 /* witness */
        start local 7 // com.oracle.svm.core.log.Log witness
        19: .line 329
            aload 7 /* witness */
            ldc "[HeapVerifier.NoReferencesOutsideHeapVisitor:"
            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 3 /* 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
        20: .line 330
            aload 7 /* witness */
            ldc "  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 "  contains fieldPointer: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* objPointer */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  that is not a reference to the heap"
            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
        21: .line 331
            aload 7 /* witness */
            ldc "    Foolishly trying to look at the object pointed to by the fieldPointer:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            pop
        22: .line 332
            aload 4 /* objPointer */
            invokestatic com.oracle.svm.core.genscavenge.ObjectHeaderImpl.readHeaderFromPointerCarefully:(Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
            astore 8 /* fieldHeader */
        start local 8 // org.graalvm.word.UnsignedWord fieldHeader
        23: .line 333
            aload 7 /* witness */
            ldc "  fieldHeader: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 8 /* fieldHeader */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            pop
        24: .line 334
            aload 4 /* objPointer */
            invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
            astore 9 /* fieldObject */
        start local 9 // java.lang.Object fieldObject
        25: .line 335
            aload 7 /* witness */
            ldc "  fieldObject: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 9 /* fieldObject */
            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;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        end local 9 // java.lang.Object fieldObject
        end local 8 // org.graalvm.word.UnsignedWord fieldHeader
        26: .line 336
            aload 7 /* witness */
            ifnull 32
            aload 7 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
            goto 32
      StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor org.graalvm.word.Pointer int 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
        27: astore 5
            aload 7 /* witness */
            ifnull 28
            aload 7 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
        end local 7 // com.oracle.svm.core.log.Log witness
      StackMap locals:
      StackMap stack:
        28: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 6
            aload 5
            ifnonnull 30
            aload 6
            astore 5
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 5
            aload 6
            if_acmpeq 31
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        31: aload 5
            athrow
        32: .line 337
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        33: .line 340
      StackMap locals:
      StackMap stack:
            aload 4 /* objPointer */
            iconst_0
            invokeinterface org.graalvm.word.Pointer.readWord:(I)Lorg/graalvm/word/WordBase;
            checkcast org.graalvm.compiler.word.Word
            astore 5 /* readWord */
        start local 5 // org.graalvm.compiler.word.Word readWord
        34: .line 341
            aload 5 /* readWord */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.equal:(Lorg/graalvm/compiler/word/Word;)Z
            ifne 35
            aload 5 /* readWord */
            invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
            invokevirtual org.graalvm.compiler.word.Word.equal:(Lorg/graalvm/compiler/word/Word;)Z
            ifeq 46
        35: .line 342
      StackMap locals: org.graalvm.compiler.word.Word
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
        36: aload 3 /* 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
        37: .line 343
            aload 8 /* witness */
            ldc "[HeapVerifier.NoReferencesOutsideHeapVisitor:"
            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 3 /* 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
        38: .line 344
            aload 8 /* witness */
            ldc "  contains fieldPointer: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 4 /* objPointer */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  to zapped memory: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            aload 5 /* readWord */
            invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
            ldc "  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
        39: .line 345
            aload 8 /* witness */
            ifnull 45
            aload 8 /* witness */
            invokevirtual com.oracle.svm.core.log.Log.close:()V
            goto 45
      StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor org.graalvm.word.Pointer int com.oracle.svm.core.genscavenge.HeapVerifier org.graalvm.word.Pointer org.graalvm.compiler.word.Word java.lang.Throwable java.lang.Throwable com.oracle.svm.core.log.Log
      StackMap stack: java.lang.Throwable
        40: astore 6
            aload 8 /* witness */
            ifnull 41
            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:
        41: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 7
            aload 6
            ifnonnull 43
            aload 7
            astore 6
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 6
            aload 7
            if_acmpeq 44
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        44: aload 6
            athrow
        45: .line 346
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        46: .line 348
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // org.graalvm.compiler.word.Word readWord
        end local 4 // org.graalvm.word.Pointer objPointer
        end local 3 // com.oracle.svm.core.genscavenge.HeapVerifier verifier
        end local 2 // boolean compressed
        end local 1 // org.graalvm.word.Pointer objRef
        end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   47     0         this  Lcom/oracle/svm/core/genscavenge/HeapVerifier$NoReferencesOutsideHeapVisitor;
            0   47     1       objRef  Lorg/graalvm/word/Pointer;
            0   47     2   compressed  Z
            1   47     3     verifier  Lcom/oracle/svm/core/genscavenge/HeapVerifier;
            2   47     4   objPointer  Lorg/graalvm/word/Pointer;
            7   11     7      witness  Lcom/oracle/svm/core/log/Log;
           19   28     7      witness  Lcom/oracle/svm/core/log/Log;
           23   26     8  fieldHeader  Lorg/graalvm/word/UnsignedWord;
           25   26     9  fieldObject  Ljava/lang/Object;
           34   47     5     readWord  Lorg/graalvm/compiler/word/Word;
           37   41     8      witness  Lcom/oracle/svm/core/log/Log;
      Exception table:
        from    to  target  type
           7     9      10  any
           6    12      12  any
          19    26      27  any
          18    29      29  any
          37    39      40  any
          36    42      42  any
    MethodParameters:
            Name  Flags
      objRef      
      compressed  
}
SourceFile: "HeapVerifier.java"
NestHost: com.oracle.svm.core.genscavenge.HeapVerifier
InnerClasses:
  private NoReferencesOutsideHeapVisitor = com.oracle.svm.core.genscavenge.HeapVerifier$NoReferencesOutsideHeapVisitor of com.oracle.svm.core.genscavenge.HeapVerifier