final class org.graalvm.libgraal.jni.HSObject$Cleaner extends java.lang.ref.PhantomReference<org.graalvm.libgraal.jni.HSObject>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.libgraal.jni.HSObject$Cleaner
super_class: java.lang.ref.PhantomReference
{
private org.graalvm.libgraal.jni.JNI$JObject handle;
descriptor: Lorg/graalvm/libgraal/jni/JNI$JObject;
flags: (0x0002) ACC_PRIVATE
void <init>(org.graalvm.libgraal.jni.HSObject, org.graalvm.libgraal.jni.JNI$JObject);
descriptor: (Lorg/graalvm/libgraal/jni/HSObject;Lorg/graalvm/libgraal/jni/JNI$JObject;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // org.graalvm.libgraal.jni.HSObject$Cleaner this
start local 1 // org.graalvm.libgraal.jni.HSObject referent
start local 2 // org.graalvm.libgraal.jni.JNI$JObject handle
0: .line 172
aload 0 /* this */
aload 1 /* referent */
getstatic org.graalvm.libgraal.jni.HSObject.CLEANERS_QUEUE:Ljava/lang/ref/ReferenceQueue;
invokespecial java.lang.ref.PhantomReference.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
1: .line 173
aload 0 /* this */
aload 2 /* handle */
putfield org.graalvm.libgraal.jni.HSObject$Cleaner.handle:Lorg/graalvm/libgraal/jni/JNI$JObject;
2: .line 174
return
end local 2 // org.graalvm.libgraal.jni.JNI$JObject handle
end local 1 // org.graalvm.libgraal.jni.HSObject referent
end local 0 // org.graalvm.libgraal.jni.HSObject$Cleaner this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/libgraal/jni/HSObject$Cleaner;
0 3 1 referent Lorg/graalvm/libgraal/jni/HSObject;
0 3 2 handle Lorg/graalvm/libgraal/jni/JNI$JObject;
MethodParameters:
Name Flags
referent
handle
void clean(org.graalvm.libgraal.jni.JNI$JNIEnv);
descriptor: (Lorg/graalvm/libgraal/jni/JNI$JNIEnv;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 // org.graalvm.libgraal.jni.HSObject$Cleaner this
start local 1 // org.graalvm.libgraal.jni.JNI$JNIEnv env
0: .line 177
getstatic org.graalvm.libgraal.jni.HSObject.CLEANERS:Ljava/util/Set;
aload 0 /* this */
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
ifeq 10
1: .line 178
invokestatic org.graalvm.libgraal.jni.HSObject.checkingGlobalDuplicates:()Z
ifeq 9
2: .line 179
aload 0 /* this */
dup
astore 2
monitorenter
3: .line 180
aload 1 /* env */
aload 0 /* this */
getfield org.graalvm.libgraal.jni.HSObject$Cleaner.handle:Lorg/graalvm/libgraal/jni/JNI$JObject;
invokestatic org.graalvm.libgraal.jni.JNIUtil.DeleteGlobalRef:(Lorg/graalvm/libgraal/jni/JNI$JNIEnv;Lorg/graalvm/libgraal/jni/JNI$JObject;)V
4: .line 181
aload 0 /* this */
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.libgraal.jni.JNI$JObject
putfield org.graalvm.libgraal.jni.HSObject$Cleaner.handle:Lorg/graalvm/libgraal/jni/JNI$JObject;
5: .line 179
aload 2
monitorexit
6: goto 10
StackMap locals: org.graalvm.libgraal.jni.HSObject$Cleaner org.graalvm.libgraal.jni.JNI$JNIEnv org.graalvm.libgraal.jni.HSObject$Cleaner
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: .line 184
StackMap locals:
StackMap stack:
aload 1 /* env */
aload 0 /* this */
getfield org.graalvm.libgraal.jni.HSObject$Cleaner.handle:Lorg/graalvm/libgraal/jni/JNI$JObject;
invokestatic org.graalvm.libgraal.jni.JNIUtil.DeleteGlobalRef:(Lorg/graalvm/libgraal/jni/JNI$JNIEnv;Lorg/graalvm/libgraal/jni/JNI$JObject;)V
10: .line 187
StackMap locals:
StackMap stack:
return
end local 1 // org.graalvm.libgraal.jni.JNI$JNIEnv env
end local 0 // org.graalvm.libgraal.jni.HSObject$Cleaner this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/libgraal/jni/HSObject$Cleaner;
0 11 1 env Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
Exception table:
from to target type
3 6 7 any
7 8 7 any
MethodParameters:
Name Flags
env
}
Signature: Ljava/lang/ref/PhantomReference<Lorg/graalvm/libgraal/jni/HSObject;>;
SourceFile: "HSObject.java"
NestHost: org.graalvm.libgraal.jni.HSObject
InnerClasses:
private final Cleaner = org.graalvm.libgraal.jni.HSObject$Cleaner of org.graalvm.libgraal.jni.HSObject
public abstract JNIEnv = org.graalvm.libgraal.jni.JNI$JNIEnv of org.graalvm.libgraal.jni.JNI
public abstract JObject = org.graalvm.libgraal.jni.JNI$JObject of org.graalvm.libgraal.jni.JNI