final class com.oracle.svm.jni.JNIImageHeapHandles
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.jni.JNIImageHeapHandles
super_class: java.lang.Object
{
private static final int OBJ_OFFSET_BITS_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final org.graalvm.compiler.word.Word OBJ_OFFSET_BITS_MASK;
descriptor: Lorg/graalvm/compiler/word/Word;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.word.SignedWord LOCAL_RANGE_MIN;
descriptor: Lorg/graalvm/word/SignedWord;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.word.SignedWord GLOBAL_RANGE_MIN;
descriptor: Lorg/graalvm/word/SignedWord;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.word.SignedWord WEAK_GLOBAL_RANGE_MIN;
descriptor: Lorg/graalvm/word/SignedWord;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.word.SignedWord ENTIRE_RANGE_MIN;
descriptor: Lorg/graalvm/word/SignedWord;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.word.SignedWord ENTIRE_RANGE_MAX;
descriptor: Lorg/graalvm/word/SignedWord;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/oracle/svm/jni/JNIImageHeapHandles;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
3: ldc 4294967295
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.compiler.word.Word
putstatic com.oracle.svm.jni.JNIImageHeapHandles.OBJ_OFFSET_BITS_MASK:Lorg/graalvm/compiler/word/Word;
4: iconst_1
invokestatic org.graalvm.word.WordFactory.signed:(I)Lorg/graalvm/word/SignedWord;
bipush 32
invokeinterface org.graalvm.word.SignedWord.shiftLeft:(I)Lorg/graalvm/word/SignedWord;
putstatic com.oracle.svm.jni.JNIImageHeapHandles.LOCAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
5: iconst_2
invokestatic org.graalvm.word.WordFactory.signed:(I)Lorg/graalvm/word/SignedWord;
bipush 32
invokeinterface org.graalvm.word.SignedWord.shiftLeft:(I)Lorg/graalvm/word/SignedWord;
putstatic com.oracle.svm.jni.JNIImageHeapHandles.GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
6: iconst_3
invokestatic org.graalvm.word.WordFactory.signed:(I)Lorg/graalvm/word/SignedWord;
bipush 32
invokeinterface org.graalvm.word.SignedWord.shiftLeft:(I)Lorg/graalvm/word/SignedWord;
putstatic com.oracle.svm.jni.JNIImageHeapHandles.WEAK_GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
7: getstatic com.oracle.svm.jni.JNIImageHeapHandles.LOCAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
putstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MIN:Lorg/graalvm/word/SignedWord;
8: getstatic com.oracle.svm.jni.JNIImageHeapHandles.WEAK_GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
getstatic com.oracle.svm.jni.JNIImageHeapHandles.OBJ_OFFSET_BITS_MASK:Lorg/graalvm/compiler/word/Word;
invokeinterface org.graalvm.word.SignedWord.add:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
putstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MAX:Lorg/graalvm/word/SignedWord;
9: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 10
getstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MAX:Lorg/graalvm/word/SignedWord;
getstatic com.oracle.svm.core.handles.ThreadLocalHandles.MIN_VALUE:I
invokeinterface org.graalvm.word.SignedWord.lessThan:(I)Z
ifne 10
getstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MIN:Lorg/graalvm/word/SignedWord;
ldc 2147483647
invokeinterface org.graalvm.word.SignedWord.greaterThan:(I)Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 11
getstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MAX:Lorg/graalvm/word/SignedWord;
getstatic com.oracle.svm.jni.JNIGlobalHandles.MIN_VALUE:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.lessThan:(Lorg/graalvm/word/SignedWord;)Z
ifne 11
getstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MIN:Lorg/graalvm/word/SignedWord;
getstatic com.oracle.svm.jni.JNIGlobalHandles.MAX_VALUE:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.greaterThan:(Lorg/graalvm/word/SignedWord;)Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/jni/JNIImageHeapHandles;
static boolean isInImageHeap(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
invokestatic com.oracle.svm.core.heap.Heap.getHeap:()Lcom/oracle/svm/core/heap/Heap;
aload 0
invokevirtual com.oracle.svm.core.heap.Heap.isInImageHeap:(Ljava/lang/Object;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
MethodParameters:
Name Flags
target
static boolean isInRange(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
checkcast org.graalvm.word.SignedWord
astore 1
start local 1 1: aload 1
getstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.greaterOrEqual:(Lorg/graalvm/word/SignedWord;)Z
ifeq 2
aload 1
getstatic com.oracle.svm.jni.JNIImageHeapHandles.ENTIRE_RANGE_MAX:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.lessOrEqual:(Lorg/graalvm/word/SignedWord;)Z
ifeq 2
iconst_1
ireturn
StackMap locals: org.graalvm.word.SignedWord
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
1 3 1 handleValue Lorg/graalvm/word/SignedWord;
MethodParameters:
Name Flags
handle
static com.oracle.svm.jni.nativeapi.JNIObjectHandle asLocal(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInImageHeap:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic org.graalvm.nativeimage.CurrentIsolate.getIsolate:()Lorg/graalvm/nativeimage/Isolate;
invokestatic com.oracle.svm.core.Isolates.getHeapBase:(Lorg/graalvm/nativeimage/Isolate;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.word.SignedWord
astore 1
start local 1 2: aload 0
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
aload 1
invokevirtual org.graalvm.compiler.word.Word.subtract:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/compiler/word/Word;
astore 2
start local 2 3: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 4
aload 2
getstatic com.oracle.svm.jni.JNIImageHeapHandles.OBJ_OFFSET_BITS_MASK:Lorg/graalvm/compiler/word/Word;
invokeinterface org.graalvm.word.SignedWord.and:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
aload 2
invokeinterface org.graalvm.word.SignedWord.equal:(Lorg/graalvm/word/SignedWord;)Z
ifne 4
new java.lang.AssertionError
dup
ldc "does not fit in range"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: org.graalvm.word.SignedWord org.graalvm.word.SignedWord
StackMap stack:
getstatic com.oracle.svm.jni.JNIImageHeapHandles.LOCAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
aload 2
invokeinterface org.graalvm.word.SignedWord.add:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 target Ljava/lang/Object;
2 5 1 base Lorg/graalvm/word/SignedWord;
3 5 2 offset Lorg/graalvm/word/SignedWord;
MethodParameters:
Name Flags
target
static com.oracle.svm.jni.nativeapi.JNIObjectHandle toLocal(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.jni.JNIImageHeapHandles.LOCAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.toRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lorg/graalvm/word/SignedWord;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
MethodParameters:
Name Flags
handle
static com.oracle.svm.jni.nativeapi.JNIObjectHandle toGlobal(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.jni.JNIImageHeapHandles.GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.toRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lorg/graalvm/word/SignedWord;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
MethodParameters:
Name Flags
handle
static com.oracle.svm.jni.nativeapi.JNIObjectHandle toWeakGlobal(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.jni.JNIImageHeapHandles.WEAK_GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.toRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lorg/graalvm/word/SignedWord;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
areturn
end local 0 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 toRange(com.oracle.svm.jni.nativeapi.JNIObjectHandle, org.graalvm.word.SignedWord);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;Lorg/graalvm/word/SignedWord;)Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "assert isInRange(handle) failed"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
checkcast org.graalvm.word.SignedWord
getstatic com.oracle.svm.jni.JNIImageHeapHandles.OBJ_OFFSET_BITS_MASK:Lorg/graalvm/compiler/word/Word;
invokeinterface org.graalvm.word.SignedWord.and:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
aload 1
invokeinterface org.graalvm.word.SignedWord.add:(Lorg/graalvm/word/SignedWord;)Lorg/graalvm/word/SignedWord;
checkcast com.oracle.svm.jni.nativeapi.JNIObjectHandle
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
0 2 1 rangeMin Lorg/graalvm/word/SignedWord;
MethodParameters:
Name Flags
handle
rangeMin
static <T> T getObject(com.oracle.svm.jni.nativeapi.JNIObjectHandle);
descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic org.graalvm.nativeimage.CurrentIsolate.getIsolate:()Lorg/graalvm/nativeimage/Isolate;
invokestatic com.oracle.svm.core.Isolates.getHeapBase:(Lorg/graalvm/nativeimage/Isolate;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.word.UnsignedWord
astore 1
start local 1 2: aload 0
checkcast org.graalvm.word.Pointer
getstatic com.oracle.svm.jni.JNIImageHeapHandles.OBJ_OFFSET_BITS_MASK:Lorg/graalvm/compiler/word/Word;
invokeinterface org.graalvm.word.Pointer.and:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
aload 1
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 2
start local 2 3: aload 2
invokeinterface org.graalvm.word.Pointer.toObjectNonNull:()Ljava/lang/Object;
ldc Ljava/lang/Object;
invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.convertUnknownValue:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 3
start local 3 4: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 5
aload 3
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInImageHeap:(Ljava/lang/Object;)Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: org.graalvm.word.UnsignedWord org.graalvm.word.Pointer java.lang.Object
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
2 6 1 base Lorg/graalvm/word/UnsignedWord;
3 6 2 offset Lorg/graalvm/word/Pointer;
4 6 3 obj TT;
Signature: <T:Ljava/lang/Object;>(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)TT;
MethodParameters:
Name Flags
handle
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: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.oracle.svm.jni.JNIImageHeapHandles.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic com.oracle.svm.jni.JNIImageHeapHandles.isInRange:(Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
checkcast org.graalvm.word.SignedWord
astore 1
start local 1 2: aload 1
getstatic com.oracle.svm.jni.JNIImageHeapHandles.WEAK_GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.greaterOrEqual:(Lorg/graalvm/word/SignedWord;)Z
ifeq 4
3: getstatic com.oracle.svm.jni.nativeapi.JNIObjectRefType.WeakGlobal:Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
areturn
4: StackMap locals: org.graalvm.word.SignedWord
StackMap stack:
aload 1
getstatic com.oracle.svm.jni.JNIImageHeapHandles.GLOBAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.greaterOrEqual:(Lorg/graalvm/word/SignedWord;)Z
ifeq 6
5: getstatic com.oracle.svm.jni.nativeapi.JNIObjectRefType.Global:Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
areturn
6: StackMap locals:
StackMap stack:
aload 1
getstatic com.oracle.svm.jni.JNIImageHeapHandles.LOCAL_RANGE_MIN:Lorg/graalvm/word/SignedWord;
invokeinterface org.graalvm.word.SignedWord.greaterOrEqual:(Lorg/graalvm/word/SignedWord;)Z
ifeq 8
7: getstatic com.oracle.svm.jni.nativeapi.JNIObjectRefType.Local:Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
areturn
8: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.jni.nativeapi.JNIObjectRefType.Invalid:Lcom/oracle/svm/jni/nativeapi/JNIObjectRefType;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 handle Lcom/oracle/svm/jni/nativeapi/JNIObjectHandle;
2 9 1 handleValue Lorg/graalvm/word/SignedWord;
MethodParameters:
Name Flags
handle
}
SourceFile: "JNIObjectHandles.java"