class com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor implements com.oracle.svm.core.heap.ObjectVisitor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor
super_class: java.lang.Object
{
private final com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor visitor;
descriptor: Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor);
descriptor: (Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
start local 1 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor visitor
0: .line 342
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 343
aload 0 /* this */
aload 1 /* visitor */
putfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
2: .line 344
return
end local 1 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor visitor
end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
0 3 1 visitor Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
MethodParameters:
Name Flags
visitor
public boolean visitObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
start local 1 // java.lang.Object obj
0: .line 348
invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.getTraceLog:()Lcom/oracle/svm/core/log/Log;
ldc "[ReferenceToYoungObjectVisitor.visitObject:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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 1 /* 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;
astore 2 /* trace */
start local 2 // com.oracle.svm.core.log.Log trace
1: .line 349
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.reset:()V
2: .line 350
aload 2 /* trace */
ldc " calling walkObject"
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
3: .line 351
aload 1 /* obj */
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
invokestatic com.oracle.svm.core.hub.InteriorObjRefWalker.walkObject:(Ljava/lang/Object;Lcom/oracle/svm/core/heap/ObjectReferenceVisitor;)Z
ifne 7
4: .line 352
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;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
astore 3 /* witness */
start local 3 // com.oracle.svm.core.log.Log witness
5: .line 353
aload 3 /* witness */
ldc "[[ReferenceToYoungObjectVisitor.visitObject:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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 1 /* obj */
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " fails InteriorObjRefWalker.walkObject"
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
6: .line 354
iconst_0
ireturn
end local 3 // com.oracle.svm.core.log.Log witness
7: .line 356
StackMap locals: com.oracle.svm.core.log.Log
StackMap stack:
aload 2 /* trace */
ldc " visitor.getFound(): "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.found:Z
invokevirtual com.oracle.svm.core.log.Log.bool:(Z)Lcom/oracle/svm/core/log/Log;
ldc " returns true"
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
8: .line 357
iconst_1
ireturn
end local 2 // com.oracle.svm.core.log.Log trace
end local 1 // java.lang.Object obj
end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
0 9 1 obj Ljava/lang/Object;
1 9 2 trace Lcom/oracle/svm/core/log/Log;
5 7 3 witness Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
obj
private boolean containsReferenceToYoungObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
start local 1 // java.lang.Object obj
0: .line 361
aload 0 /* this */
aload 1 /* obj */
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitObject:(Ljava/lang/Object;)Z
ifne 3
1: .line 362
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;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
astore 2 /* witness */
start local 2 // com.oracle.svm.core.log.Log witness
2: .line 363
aload 2 /* witness */
ldc "[[ReferenceToYoungObjectVisitor.containsReferenceToYoungObject:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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 1 /* obj */
invokevirtual com.oracle.svm.core.log.Log.object:(Ljava/lang/Object;)Lcom/oracle/svm/core/log/Log;
ldc " fails visitObject"
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 2 // com.oracle.svm.core.log.Log witness
3: .line 365
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.found:Z
ireturn
end local 1 // java.lang.Object obj
end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
0 4 1 obj Ljava/lang/Object;
2 3 2 witness Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
obj
private boolean witnessReferenceToYoungObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
start local 1 // java.lang.Object obj
0: .line 369
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
iconst_1
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.setWitnessForDebugging:(Z)V
1: .line 370
aload 0 /* this */
aload 1 /* obj */
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitObject:(Ljava/lang/Object;)Z
pop
2: .line 371
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
iconst_0
invokevirtual com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.setWitnessForDebugging:(Z)V
3: .line 372
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor.visitor:Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectReferenceVisitor;
getfield com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectReferenceVisitor.found:Z
ireturn
end local 1 // java.lang.Object obj
end local 0 // com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/CardTable$ReferenceToYoungObjectVisitor;
0 4 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
}
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
ReferenceToYoungObjectVisitor = com.oracle.svm.core.genscavenge.CardTable$ReferenceToYoungObjectVisitor of com.oracle.svm.core.genscavenge.CardTable