class com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl implements org.graalvm.nativeimage.impl.PinnedObjectSupport
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl this
0: .line 47
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl$PinnedObjectSupportImpl;
public org.graalvm.nativeimage.PinnedObject create(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lorg/graalvm/nativeimage/PinnedObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl this
start local 1 // java.lang.Object object
0: .line 50
invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[PinnedObject.open:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " object: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1 /* object */
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 51
new com.oracle.svm.core.genscavenge.PinnedObjectImpl
dup
aload 1 /* object */
invokespecial com.oracle.svm.core.genscavenge.PinnedObjectImpl.<init>:(Ljava/lang/Object;)V
astore 3 /* result */
start local 3 // com.oracle.svm.core.genscavenge.PinnedObjectImpl result
2: .line 52
aload 3 /* result */
invokestatic com.oracle.svm.core.genscavenge.PinnedObjectImpl.pushPinnedObject:(Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;)V
3: .line 53
aload 2 /* trace */
ldc " returns: ]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3 /* result */
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
4: .line 54
aload 3 /* result */
areturn
end local 3 // com.oracle.svm.core.genscavenge.PinnedObjectImpl result
end local 2 // com.oracle.svm.core.log.Log trace
end local 1 // java.lang.Object object
end local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl$PinnedObjectSupportImpl;
0 5 1 object Ljava/lang/Object;
1 5 2 trace Lcom/oracle/svm/core/log/Log;
2 5 3 result Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
MethodParameters:
Name Flags
object
public boolean isPinned(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl this
start local 1 // java.lang.Object object
0: .line 59
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getPinHead:()Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicReference;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.svm.core.genscavenge.PinnedObjectImpl
astore 2 /* pin */
start local 2 // com.oracle.svm.core.genscavenge.PinnedObjectImpl pin
1: .line 60
goto 5
2: .line 61
StackMap locals: com.oracle.svm.core.genscavenge.PinnedObjectImpl
StackMap stack:
aload 2 /* pin */
getfield com.oracle.svm.core.genscavenge.PinnedObjectImpl.open:Z
ifeq 4
aload 2 /* pin */
getfield com.oracle.svm.core.genscavenge.PinnedObjectImpl.referent:Ljava/lang/Object;
aload 1 /* object */
if_acmpne 4
3: .line 62
iconst_1
ireturn
4: .line 64
StackMap locals:
StackMap stack:
aload 2 /* pin */
getfield com.oracle.svm.core.genscavenge.PinnedObjectImpl.next:Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
astore 2 /* pin */
5: .line 60
StackMap locals:
StackMap stack:
aload 2 /* pin */
ifnonnull 2
6: .line 66
iconst_0
ireturn
end local 2 // com.oracle.svm.core.genscavenge.PinnedObjectImpl pin
end local 1 // java.lang.Object object
end local 0 // com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl$PinnedObjectSupportImpl;
0 7 1 object Ljava/lang/Object;
1 7 2 pin Lcom/oracle/svm/core/genscavenge/PinnedObjectImpl;
MethodParameters:
Name Flags
object
}
SourceFile: "PinnedObjectImpl.java"
NestHost: com.oracle.svm.core.genscavenge.PinnedObjectImpl
InnerClasses:
PinnedObjectSupportImpl = com.oracle.svm.core.genscavenge.PinnedObjectImpl$PinnedObjectSupportImpl of com.oracle.svm.core.genscavenge.PinnedObjectImpl
public AtomicReference = com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicReference of com.oracle.svm.core.jdk.UninterruptibleUtils