final class com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation extends com.oracle.svm.core.thread.JavaVMOperation
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation
super_class: com.oracle.svm.core.thread.JavaVMOperation
{
private final com.oracle.svm.core.MemoryWalker$Visitor visitor;
descriptor: Lcom/oracle/svm/core/MemoryWalker$Visitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean result;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(com.oracle.svm.core.MemoryWalker$Visitor);
descriptor: (Lcom/oracle/svm/core/MemoryWalker$Visitor;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation this
start local 1 // com.oracle.svm.core.MemoryWalker$Visitor memoryVisitor
0: .line 57
aload 0 /* this */
ldc "MemoryWalkerImpl.visitMemory"
getstatic com.oracle.svm.core.thread.VMOperation$SystemEffect.SAFEPOINT:Lcom/oracle/svm/core/thread/VMOperation$SystemEffect;
invokespecial com.oracle.svm.core.thread.JavaVMOperation.<init>:(Ljava/lang/String;Lcom/oracle/svm/core/thread/VMOperation$SystemEffect;)V
1: .line 54
aload 0 /* this */
iconst_0
putfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.result:Z
2: .line 58
aload 0 /* this */
aload 1 /* memoryVisitor */
putfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.visitor:Lcom/oracle/svm/core/MemoryWalker$Visitor;
3: .line 59
return
end local 1 // com.oracle.svm.core.MemoryWalker$Visitor memoryVisitor
end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/MemoryWalkerImpl$MemoryWalkerVMOperation;
0 4 1 memoryVisitor Lcom/oracle/svm/core/MemoryWalker$Visitor;
MethodParameters:
Name Flags
memoryVisitor
public void operate();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation this
0: .line 64
invokestatic com.oracle.svm.core.genscavenge.ThreadLocalAllocation.disableAndFlushForAllThreads:()V
1: .line 65
aload 0 /* this */
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.visitor:Lcom/oracle/svm/core/MemoryWalker$Visitor;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.walkMemory:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
ifeq 4
2: .line 66
invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeCache:()Lcom/oracle/svm/core/code/ImageCodeInfo;
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.visitor:Lcom/oracle/svm/core/MemoryWalker$Visitor;
invokevirtual com.oracle.svm.core.code.ImageCodeInfo.walkImageCode:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
ifeq 4
3: .line 67
invokestatic com.oracle.svm.core.code.CodeInfoTable.getRuntimeCodeCache:()Lcom/oracle/svm/core/code/RuntimeCodeCache;
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.visitor:Lcom/oracle/svm/core/MemoryWalker$Visitor;
invokevirtual com.oracle.svm.core.code.RuntimeCodeCache.walkRuntimeMethods:(Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
ifeq 4
iconst_1
goto 5
StackMap locals:
StackMap stack: com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation
4: iconst_0
5: .line 65
StackMap locals: com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation
StackMap stack: com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation int
putfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.result:Z
6: .line 68
return
end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/MemoryWalkerImpl$MemoryWalkerVMOperation;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_ALLOCATION:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "Allocation would change the memory being visited.")
boolean getResult();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation this
0: .line 71
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation.result:Z
ireturn
end local 0 // com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/MemoryWalkerImpl$MemoryWalkerVMOperation;
}
SourceFile: "MemoryWalkerImpl.java"
NestHost: com.oracle.svm.core.genscavenge.MemoryWalkerImpl
InnerClasses:
public abstract Visitor = com.oracle.svm.core.MemoryWalker$Visitor of com.oracle.svm.core.MemoryWalker
public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
final MemoryWalkerVMOperation = com.oracle.svm.core.genscavenge.MemoryWalkerImpl$MemoryWalkerVMOperation of com.oracle.svm.core.genscavenge.MemoryWalkerImpl
public final SystemEffect = com.oracle.svm.core.thread.VMOperation$SystemEffect of com.oracle.svm.core.thread.VMOperation