class com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor extends com.oracle.svm.core.genscavenge.PathExhibitor$AbstractVisitor 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.PathExhibitor$HeapObjRefVisitor
super_class: com.oracle.svm.core.genscavenge.PathExhibitor$AbstractVisitor
{
private org.graalvm.word.Pointer containerPointer;
descriptor: Lorg/graalvm/word/Pointer;
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.svm.core.genscavenge.PathExhibitor$AbstractVisitor.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/PathExhibitor$HeapObjRefVisitor;
static boolean isInterfering(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.svm.core.genscavenge.PathExhibitor$PathElement
ifne 1
aload 0
instanceof com.oracle.svm.core.genscavenge.PathExhibitor$FindPathToObjectOperation
ifne 1
aload 0
instanceof com.oracle.svm.core.genscavenge.PathExhibitor$TargetMatcher
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 currentObject Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.NeverInline(value = "Starting a stack walk in the caller frame")
MethodParameters:
Name Flags
currentObject
public void initialize(org.graalvm.word.Pointer, com.oracle.svm.core.genscavenge.PathExhibitor$TargetMatcher, com.oracle.svm.core.genscavenge.PathExhibitor$PathEdge);
descriptor: (Lorg/graalvm/word/Pointer;Lcom/oracle/svm/core/genscavenge/PathExhibitor$TargetMatcher;Lcom/oracle/svm/core/genscavenge/PathExhibitor$PathEdge;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
invokespecial com.oracle.svm.core.genscavenge.PathExhibitor$AbstractVisitor.initialize:(Lcom/oracle/svm/core/genscavenge/PathExhibitor$TargetMatcher;Lcom/oracle/svm/core/genscavenge/PathExhibitor$PathEdge;)V
1: aload 0
aload 1
putfield com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor.containerPointer:Lorg/graalvm/word/Pointer;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/PathExhibitor$HeapObjRefVisitor;
0 3 1 container Lorg/graalvm/word/Pointer;
0 3 2 targetMatcher Lcom/oracle/svm/core/genscavenge/PathExhibitor$TargetMatcher;
0 3 3 edge Lcom/oracle/svm/core/genscavenge/PathExhibitor$PathEdge;
MethodParameters:
Name Flags
container
targetMatcher
edge
public boolean visitObjectReference(org.graalvm.word.Pointer, boolean);
descriptor: (Lorg/graalvm/word/Pointer;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.graalvm.word.Pointer.isNull:()Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor.containerPointer:Lorg/graalvm/word/Pointer;
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 3
start local 3 3: aload 3
invokestatic com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor.isInterfering:(Ljava/lang/Object;)Z
ifne 9
4: invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
aload 1
iload 2
invokeinterface com.oracle.svm.core.heap.ReferenceAccess.readObjectAsUntrackedPointer:(Lorg/graalvm/word/Pointer;Z)Lorg/graalvm/compiler/word/Word;
astore 4
start local 4 5: aload 0
getfield com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor.target:Lcom/oracle/svm/core/genscavenge/PathExhibitor$TargetMatcher;
aload 4
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
invokeinterface com.oracle.svm.core.genscavenge.PathExhibitor$TargetMatcher.matches:(Ljava/lang/Object;)Z
ifeq 9
6: aload 1
aload 0
getfield com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor.containerPointer:Lorg/graalvm/word/Pointer;
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 5
start local 5 7: aload 0
getfield com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor.result:Lcom/oracle/svm/core/genscavenge/PathExhibitor$PathEdge;
new com.oracle.svm.core.genscavenge.PathExhibitor$HeapElement
dup
aload 3
aload 5
invokespecial com.oracle.svm.core.genscavenge.PathExhibitor$HeapElement.<init>:(Ljava/lang/Object;Lorg/graalvm/word/UnsignedWord;)V
new com.oracle.svm.core.genscavenge.PathExhibitor$LeafElement
dup
aload 4
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
invokespecial com.oracle.svm.core.genscavenge.PathExhibitor$LeafElement.<init>:(Ljava/lang/Object;)V
invokevirtual com.oracle.svm.core.genscavenge.PathExhibitor$PathEdge.fill:(Lcom/oracle/svm/core/genscavenge/PathExhibitor$PathElement;Lcom/oracle/svm/core/genscavenge/PathExhibitor$PathElement;)V
8: iconst_0
ireturn
end local 5 end local 4 9: StackMap locals: java.lang.Object
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/core/genscavenge/PathExhibitor$HeapObjRefVisitor;
0 10 1 objRef Lorg/graalvm/word/Pointer;
0 10 2 compressed Z
3 10 3 containerObject Ljava/lang/Object;
5 9 4 referentPointer Lorg/graalvm/word/Pointer;
7 9 5 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
objRef
compressed
}
SourceFile: "PathExhibitor.java"
NestHost: com.oracle.svm.core.genscavenge.PathExhibitor
InnerClasses:
AbstractVisitor = com.oracle.svm.core.genscavenge.PathExhibitor$AbstractVisitor of com.oracle.svm.core.genscavenge.PathExhibitor
private final FindPathToObjectOperation = com.oracle.svm.core.genscavenge.PathExhibitor$FindPathToObjectOperation of com.oracle.svm.core.genscavenge.PathExhibitor
public HeapElement = com.oracle.svm.core.genscavenge.PathExhibitor$HeapElement of com.oracle.svm.core.genscavenge.PathExhibitor
private HeapObjRefVisitor = com.oracle.svm.core.genscavenge.PathExhibitor$HeapObjRefVisitor of com.oracle.svm.core.genscavenge.PathExhibitor
public LeafElement = com.oracle.svm.core.genscavenge.PathExhibitor$LeafElement of com.oracle.svm.core.genscavenge.PathExhibitor
public PathEdge = com.oracle.svm.core.genscavenge.PathExhibitor$PathEdge of com.oracle.svm.core.genscavenge.PathExhibitor
public abstract PathElement = com.oracle.svm.core.genscavenge.PathExhibitor$PathElement of com.oracle.svm.core.genscavenge.PathExhibitor
abstract TargetMatcher = com.oracle.svm.core.genscavenge.PathExhibitor$TargetMatcher of com.oracle.svm.core.genscavenge.PathExhibitor