class com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier 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.HeapVerifier$ImageHeapObjectVerifier
super_class: java.lang.Object
{
boolean verifyResult;
descriptor: Z
flags: (0x0000)
org.graalvm.word.Pointer regionStart;
descriptor: Lorg/graalvm/word/Pointer;
flags: (0x0000)
org.graalvm.word.Pointer regionEnd;
descriptor: Lorg/graalvm/word/Pointer;
flags: (0x0000)
final com.oracle.svm.core.genscavenge.HeapVerifier this$0;
descriptor: Lcom/oracle/svm/core/genscavenge/HeapVerifier;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.svm.core.genscavenge.HeapVerifier);
descriptor: (Lcom/oracle/svm/core/genscavenge/HeapVerifier;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier this
0: .line 240
aload 0 /* this */
aload 1
putfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.this$0:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapVerifier$ImageHeapObjectVerifier;
MethodParameters:
Name Flags
this$0 final
void reset(org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier this
start local 1 // org.graalvm.word.Pointer start
start local 2 // org.graalvm.word.Pointer end
0: .line 246
aload 0 /* this */
iconst_1
putfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.verifyResult:Z
1: .line 247
aload 0 /* this */
aload 1 /* start */
putfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.regionStart:Lorg/graalvm/word/Pointer;
2: .line 248
aload 0 /* this */
aload 2 /* end */
putfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.regionEnd:Lorg/graalvm/word/Pointer;
3: .line 249
return
end local 2 // org.graalvm.word.Pointer end
end local 1 // org.graalvm.word.Pointer start
end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/HeapVerifier$ImageHeapObjectVerifier;
0 4 1 start Lorg/graalvm/word/Pointer;
0 4 2 end Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
start
end
public boolean visitObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier this
start local 1 // java.lang.Object currentObject
0: .line 253
aload 1 /* currentObject */
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
astore 2 /* currentPointer */
start local 2 // org.graalvm.compiler.word.Word currentPointer
1: .line 254
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
aload 1 /* currentObject */
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.isInImageHeap:(Ljava/lang/Object;)Z
ifne 13
2: .line 255
aload 0 /* this */
iconst_0
putfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.verifyResult:Z
3: .line 256
aconst_null
astore 3
aconst_null
astore 4
4: aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.this$0:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
astore 5 /* witness */
start local 5 // com.oracle.svm.core.log.Log witness
5: .line 257
aload 5 /* witness */
ldc "[ImageHeapObjectVerifier:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " [ regionStart: "
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.HeapVerifier$ImageHeapObjectVerifier.regionStart:Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " .. regionEnd: "
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.HeapVerifier$ImageHeapObjectVerifier.regionEnd:Lorg/graalvm/word/Pointer;
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;
pop
6: .line 258
aload 5 /* witness */
ldc " current: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2 /* currentPointer */
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " object is not considered to be in image heap"
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
7: .line 259
aload 5 /* witness */
ifnull 13
aload 5 /* witness */
invokevirtual com.oracle.svm.core.log.Log.close:()V
goto 13
StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier java.lang.Object org.graalvm.compiler.word.Word java.lang.Throwable java.lang.Throwable com.oracle.svm.core.log.Log
StackMap stack: java.lang.Throwable
8: astore 3
aload 5 /* witness */
ifnull 9
aload 5 /* witness */
invokevirtual com.oracle.svm.core.log.Log.close:()V
end local 5 // com.oracle.svm.core.log.Log witness
StackMap locals:
StackMap stack:
9: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 4
aload 3
ifnonnull 11
aload 4
astore 3
goto 12
StackMap locals:
StackMap stack:
11: aload 3
aload 4
if_acmpeq 12
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 3
athrow
13: .line 261
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.this$0:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
aload 2 /* currentPointer */
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyObjectAt:(Lorg/graalvm/word/Pointer;)Z
ifne 25
14: .line 262
aload 0 /* this */
iconst_0
putfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.verifyResult:Z
15: .line 263
aconst_null
astore 3
aconst_null
astore 4
16: aload 0 /* this */
getfield com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier.this$0:Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
astore 5 /* witness */
start local 5 // com.oracle.svm.core.log.Log witness
17: .line 264
aload 5 /* witness */
ldc "[ImageHeapObjectVerifier:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " [ regionStart: "
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.HeapVerifier$ImageHeapObjectVerifier.regionStart:Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " .. regionEnd: "
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.HeapVerifier$ImageHeapObjectVerifier.regionEnd:Lorg/graalvm/word/Pointer;
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;
pop
18: .line 265
aload 5 /* witness */
ldc " current: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2 /* currentPointer */
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " object does not verify"
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
19: .line 266
aload 5 /* witness */
ifnull 25
aload 5 /* witness */
invokevirtual com.oracle.svm.core.log.Log.close:()V
goto 25
StackMap locals: com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier java.lang.Object org.graalvm.compiler.word.Word java.lang.Throwable java.lang.Throwable com.oracle.svm.core.log.Log
StackMap stack: java.lang.Throwable
20: astore 3
aload 5 /* witness */
ifnull 21
aload 5 /* witness */
invokevirtual com.oracle.svm.core.log.Log.close:()V
end local 5 // com.oracle.svm.core.log.Log witness
StackMap locals:
StackMap stack:
21: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 4
aload 3
ifnonnull 23
aload 4
astore 3
goto 24
StackMap locals:
StackMap stack:
23: aload 3
aload 4
if_acmpeq 24
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
24: aload 3
athrow
25: .line 268
StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 // org.graalvm.compiler.word.Word currentPointer
end local 1 // java.lang.Object currentObject
end local 0 // com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier this
LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/oracle/svm/core/genscavenge/HeapVerifier$ImageHeapObjectVerifier;
0 26 1 currentObject Ljava/lang/Object;
1 26 2 currentPointer Lorg/graalvm/compiler/word/Word;
5 9 5 witness Lcom/oracle/svm/core/log/Log;
17 21 5 witness Lcom/oracle/svm/core/log/Log;
Exception table:
from to target type
5 7 8 any
4 10 10 any
17 19 20 any
16 22 22 any
MethodParameters:
Name Flags
currentObject
}
SourceFile: "HeapVerifier.java"
NestHost: com.oracle.svm.core.genscavenge.HeapVerifier
InnerClasses:
ImageHeapObjectVerifier = com.oracle.svm.core.genscavenge.HeapVerifier$ImageHeapObjectVerifier of com.oracle.svm.core.genscavenge.HeapVerifier