public final class com.oracle.svm.jni.JNIObjectHandles
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.jni.JNIObjectHandles
  super_class: java.lang.Object
{
  static final int NATIVE_CALL_MIN_LOCAL_HANDLE_CAPACITY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final com.oracle.svm.core.threadlocal.FastThreadLocalObject<com.oracle.svm.core.handles.ThreadLocalHandles> handles;
    descriptor: Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject<Lcom/oracle/svm/core/handles/ThreadLocalHandles;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 85
            ldc Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            invokestatic com.oracle.svm.core.threadlocal.FastThreadLocalFactory.createObject:(Ljava/lang/Class;)Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
         1: .line 84
            putstatic com.oracle.svm.jni.JNIObjectHandles.handles:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
         2: .line 85
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.JNIObjectHandles this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.jni.JNIObjectHandles this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/jni/JNIObjectHandles;

  static boolean haveAssertions();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 71
            invokestatic com.oracle.svm.core.RuntimeAssertionsSupport.singleton:()Lcom/oracle/svm/core/RuntimeAssertionsSupport;
            ldc Lcom/oracle/svm/jni/JNIObjectHandles;
            invokevirtual com.oracle.svm.core.RuntimeAssertionsSupport.desiredAssertionStatus:(Ljava/lang/Class;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public static <T extends org.graalvm.word.SignedWord> T nullHandle();
    descriptor: ()Lorg/graalvm/word/SignedWord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 75
            invokestatic com.oracle.svm.core.handles.ThreadLocalHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T::Lorg/graalvm/word/SignedWord;>()TT;

  static boolean useImageHeapHandles();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 95
            getstatic com.oracle.svm.core.SubstrateOptions.SpawnIsolates:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  private static com.oracle.svm.core.handles.ThreadLocalHandles<org.graalvm.nativeimage.ObjectHandle> getOrCreateLocals();
    descriptor: ()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 100
            getstatic com.oracle.svm.jni.JNIObjectHandles.handles:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
            invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.core.handles.ThreadLocalHandles
            astore 0 /* result */
        start local 0 // com.oracle.svm.core.handles.ThreadLocalHandles result
         1: .line 101
            aload 0 /* result */
            ifnonnull 3
         2: .line 102
            invokestatic com.oracle.svm.jni.JNIObjectHandles.createLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            astore 0 /* result */
         3: .line 104
      StackMap locals: com.oracle.svm.core.handles.ThreadLocalHandles
      StackMap stack:
            aload 0 /* result */
            areturn
        end local 0 // com.oracle.svm.core.handles.ThreadLocalHandles result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  result  Lcom/oracle/svm/core/handles/ThreadLocalHandles<Lorg/graalvm/nativeimage/ObjectHandle;>;
    Signature: ()Lcom/oracle/svm/core/handles/ThreadLocalHandles<Lorg/graalvm/nativeimage/ObjectHandle;>;

  private static com.oracle.svm.core.handles.ThreadLocalHandles<org.graalvm.nativeimage.ObjectHandle> createLocals();
    descriptor: ()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 109
            new com.oracle.svm.core.handles.ThreadLocalHandles
            dup
            bipush 16
            invokespecial com.oracle.svm.core.handles.ThreadLocalHandles.<init>:(I)V
            astore 0 /* result */
        start local 0 // com.oracle.svm.core.handles.ThreadLocalHandles result
         1: .line 110
            getstatic com.oracle.svm.jni.JNIObjectHandles.handles:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
            aload 0 /* result */
            invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.set:(Ljava/lang/Object;)V
         2: .line 111
            aload 0 /* result */
            areturn
        end local 0 // com.oracle.svm.core.handles.ThreadLocalHandles result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    3     0  result  Lcom/oracle/svm/core/handles/ThreadLocalHandles<Lorg/graalvm/nativeimage/ObjectHandle;>;
    Signature: ()Lcom/oracle/svm/core/handles/ThreadLocalHandles<Lorg/graalvm/nativeimage/ObjectHandle;>;
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.NeverInline(value = "slow path that is executed once per thread; do not bloat machine code by inlining the allocations")

  private static com.oracle.svm.core.handles.ThreadLocalHandles<org.graalvm.nativeimage.ObjectHandle> getExistingLocals();
    descriptor: ()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 116
            getstatic com.oracle.svm.jni.JNIObjectHandles.handles:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
            invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.core.handles.ThreadLocalHandles
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lcom/oracle/svm/core/handles/ThreadLocalHandles<Lorg/graalvm/nativeimage/ObjectHandle;>;

  private static boolean isInLocalRange(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
         0: .line 120
            aload 0 /* handle */
            checkcast org.graalvm.nativeimage.ObjectHandle
            invokestatic com.oracle.svm.core.handles.ThreadLocalHandles.isInRange:(Lorg/graalvm/nativeimage/ObjectHandle;)Z
            ireturn
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  handle  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
        Name  Flags
      handle  

  private static org.graalvm.nativeimage.ObjectHandle decodeLocal(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lorg/graalvm/nativeimage/ObjectHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
         0: .line 124
            aload 0 /* handle */
            checkcast org.graalvm.nativeimage.ObjectHandle
            areturn
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  handle  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
        Name  Flags
      handle  

  private static com.oracle.svm.jni.nativeapi.JNIObjectHandle encodeLocal(org.graalvm.nativeimage.ObjectHandle);
    descriptor: (Lorg/graalvm/nativeimage/ObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.nativeimage.ObjectHandle handle
         0: .line 128
            aload 0 /* handle */
            checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
            areturn
        end local 0 // org.graalvm.nativeimage.ObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  handle  Lorg/graalvm/nativeimage/ObjectHandle;
    MethodParameters:
        Name  Flags
      handle  

  public static <T> T getObject(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
         0: .line 132
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
            invokeinterface com.oracle.svm.jni.nativeapi.JNIObjectHandle.equal:(Lorg/graalvm/word/ComparableWord;)Z
            ifeq 2
         1: .line 133
            aconst_null
            areturn
         2: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.isInLocalRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 4
         3: .line 136
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getExistingLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.decodeLocal:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lorg/graalvm/nativeimage/ObjectHandle;
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.getObject:(Lorg/graalvm/nativeimage/ObjectHandle;)Ljava/lang/Object;
            areturn
         4: .line 138
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 6
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 6
         5: .line 139
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.getObject:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
            areturn
         6: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 8
         7: .line 142
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.getObject:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
            areturn
         8: .line 145
      StackMap locals:
      StackMap stack:
            ldc "Invalid object handle"
            invokestatic com.oracle.svm.core.util.ExceptionHelpers.throwIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  handle  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)TT;
    MethodParameters:
        Name  Flags
      handle  

  public static com.oracle.svm.jni.nativeapi.JNIObjectRefType getHandleType(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
         0: .line 149
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.isInLocalRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 2
         1: .line 150
            getstatic com.oracle.svm.jni.nativeapi.JNIObjectRefType.Local:Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
            areturn
         2: .line 152
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 4
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 4
         3: .line 153
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.getHandleType:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
            areturn
         4: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 6
         5: .line 156
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.getHandleType:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
            areturn
         6: .line 158
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.jni.nativeapi.JNIObjectRefType.Invalid:Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
            areturn
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  handle  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
        Name  Flags
      handle  

  public static com.oracle.svm.jni.nativeapi.JNIObjectHandle createLocal(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 162
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 2
            aload 0 /* obj */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInImageHeap:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 163
            aload 0 /* obj */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.asLocal:(Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            areturn
         2: .line 165
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getOrCreateLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            aload 0 /* obj */
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
            invokestatic com.oracle.svm.jni.JNIObjectHandles.encodeLocal:(Lorg/graalvm/nativeimage/ObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static com.oracle.svm.jni.nativeapi.JNIObjectHandle newLocalRef(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle ref
         0: .line 169
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 2
            aload 0 /* ref */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 2
         1: .line 170
            aload 0 /* ref */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.toLocal:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            areturn
         2: .line 172
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getOrCreateLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            aload 0 /* ref */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getObject:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
            invokestatic com.oracle.svm.jni.JNIObjectHandles.encodeLocal:(Lorg/graalvm/nativeimage/ObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            areturn
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle ref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   ref  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
      Name  Flags
      ref   

  public static void deleteLocalRef(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle localRef
         0: .line 176
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 1
            aload 0 /* localRef */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifne 2
         1: .line 177
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getOrCreateLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            aload 0 /* localRef */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.decodeLocal:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lorg/graalvm/nativeimage/ObjectHandle;
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.delete:(Lorg/graalvm/nativeimage/ObjectHandle;)Z
            pop
         2: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle localRef
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  localRef  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
          Name  Flags
      localRef  

  public static int pushLocalFrame(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int capacity
         0: .line 182
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getOrCreateLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            iload 0 /* capacity */
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.pushFrame:(I)I
            ireturn
        end local 0 // int capacity
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  capacity  I
    MethodParameters:
          Name  Flags
      capacity  

  public static void popLocalFrame();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 186
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getExistingLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.popFrame:()V
         1: .line 187
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void popLocalFramesIncluding(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int frame
         0: .line 190
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getExistingLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            iload 0 /* frame */
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.popFramesIncluding:(I)V
         1: .line 191
            return
        end local 0 // int frame
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  frame  I
    MethodParameters:
       Name  Flags
      frame  

  public static void ensureLocalCapacity(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int capacity
         0: .line 194
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getOrCreateLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            iload 0 /* capacity */
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.ensureCapacity:(I)V
         1: .line 195
            return
        end local 0 // int capacity
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  capacity  I
    MethodParameters:
          Name  Flags
      capacity  

  public static com.oracle.svm.jni.nativeapi.JNIObjectHandle newGlobalRef(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
         0: .line 198
            invokestatic com.oracle.svm.jni.JNIObjectHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
            checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
            astore 1 /* result */
        start local 1 // com.oracle.svm.jni.nativeapi.JNIObjectHandle result
         1: .line 199
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 4
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 4
         2: .line 200
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.toGlobal:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            astore 1 /* result */
         3: .line 201
            goto 7
         4: .line 202
      StackMap locals: com.oracle.svm.jni.nativeapi.JNIObjectHandle
      StackMap stack:
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getObject:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
            astore 2 /* obj */
        start local 2 // java.lang.Object obj
         5: .line 203
            aload 2 /* obj */
            ifnull 7
         6: .line 204
            aload 2 /* obj */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.create:(Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            astore 1 /* result */
        end local 2 // java.lang.Object obj
         7: .line 207
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // com.oracle.svm.jni.nativeapi.JNIObjectHandle result
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  handle  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            1    8     1  result  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            5    7     2     obj  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      handle  

  public static void deleteGlobalRef(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle globalRef
         0: .line 211
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 1
            aload 0 /* globalRef */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifne 2
         1: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* globalRef */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.destroy:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
         2: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle globalRef
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  globalRef  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
           Name  Flags
      globalRef  

  public static com.oracle.svm.jni.nativeapi.JNIObjectHandle newWeakGlobalRef(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
         0: .line 217
            invokestatic com.oracle.svm.jni.JNIObjectHandles.nullHandle:()Lorg/graalvm/word/SignedWord;
            checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
            astore 1 /* result */
        start local 1 // com.oracle.svm.jni.nativeapi.JNIObjectHandle result
         1: .line 218
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 4
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifeq 4
         2: .line 219
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.toWeakGlobal:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            astore 1 /* result */
         3: .line 220
            goto 7
         4: .line 221
      StackMap locals: com.oracle.svm.jni.nativeapi.JNIObjectHandle
      StackMap stack:
            aload 0 /* handle */
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getObject:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
            astore 2 /* obj */
        start local 2 // java.lang.Object obj
         5: .line 222
            aload 2 /* obj */
            ifnull 7
         6: .line 223
            aload 2 /* obj */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.createWeak:(Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            astore 1 /* result */
        end local 2 // java.lang.Object obj
         7: .line 226
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // com.oracle.svm.jni.nativeapi.JNIObjectHandle result
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  handle  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            1    8     1  result  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
            5    7     2     obj  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      handle  

  public static void deleteWeakGlobalRef(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle weakRef
         0: .line 230
            invokestatic com.oracle.svm.jni.JNIObjectHandles.useImageHeapHandles:()Z
            ifeq 1
            aload 0 /* weakRef */
            invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
            ifne 2
         1: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* weakRef */
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.destroyWeak:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)V
         2: .line 233
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.svm.jni.nativeapi.JNIObjectHandle weakRef
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  weakRef  Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
    MethodParameters:
         Name  Flags
      weakRef  

  static int getLocalHandleCount();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 236
            invokestatic com.oracle.svm.jni.JNIObjectHandles.getExistingLocals:()Lcom/oracle/svm/core/handles/ThreadLocalHandles;
            astore 0 /* locals */
        start local 0 // com.oracle.svm.core.handles.ThreadLocalHandles locals
         1: .line 237
            aload 0 /* locals */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: com.oracle.svm.core.handles.ThreadLocalHandles
      StackMap stack:
         2: aload 0 /* locals */
            invokevirtual com.oracle.svm.core.handles.ThreadLocalHandles.getHandleCount:()I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // com.oracle.svm.core.handles.ThreadLocalHandles locals
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  locals  Lcom/oracle/svm/core/handles/ThreadLocalHandles<Lorg/graalvm/nativeimage/ObjectHandle;>;

  static long computeCurrentGlobalHandleCount();
    descriptor: ()J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 241
            invokestatic com.oracle.svm.jni.JNIGlobalHandles.computeCurrentCount:()J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JNIObjectHandles.java"