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