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