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