public class org.graalvm.libgraal.jni.JNILibGraalScope<T extends java.lang.Enum<T>> implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.libgraal.jni.JNILibGraalScope
super_class: java.lang.Object
{
private static final java.lang.ThreadLocal<org.graalvm.libgraal.jni.JNILibGraalScope<?>> topScope;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;>;
private final org.graalvm.libgraal.jni.JNI$JNIEnv env;
descriptor: Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.libgraal.jni.JNILibGraalScope<?> parent;
descriptor: Lorg/graalvm/libgraal/jni/JNILibGraalScope;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
private org.graalvm.libgraal.jni.JNILibGraalScope<?> leaf;
descriptor: Lorg/graalvm/libgraal/jni/JNILibGraalScope;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
org.graalvm.libgraal.jni.HSObject locals;
descriptor: Lorg/graalvm/libgraal/jni/HSObject;
flags: (0x0000)
private final java.lang.Enum<T> id;
descriptor: Ljava/lang/Enum;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Enum<TT;>;
private org.graalvm.libgraal.jni.JNI$JObject objResult;
descriptor: Lorg/graalvm/libgraal/jni/JNI$JObject;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
return
LocalVariableTable:
Start End Slot Name Signature
public static org.graalvm.libgraal.jni.JNI$JNIEnv env();
descriptor: ()Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic org.graalvm.libgraal.jni.JNILibGraalScope.scope:()Lorg/graalvm/libgraal/jni/JNILibGraalScope;
getfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.graalvm.libgraal.jni.JNI$JNIEnv getEnv();
descriptor: ()Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
public static org.graalvm.libgraal.jni.JNILibGraalScope<?> scopeOrNull();
descriptor: ()Lorg/graalvm/libgraal/jni/JNILibGraalScope;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast org.graalvm.libgraal.jni.JNILibGraalScope
astore 0
start local 0 1: aload 0
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: org.graalvm.libgraal.jni.JNILibGraalScope
StackMap stack:
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.leaf:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 scope Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
Signature: ()Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
public static org.graalvm.libgraal.jni.JNILibGraalScope<?> scope();
descriptor: ()Lorg/graalvm/libgraal/jni/JNILibGraalScope;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast org.graalvm.libgraal.jni.JNILibGraalScope
astore 0
start local 0 1: aload 0
ifnonnull 3
2: new java.lang.IllegalStateException
dup
ldc "Not in the scope of an libgraal call"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.graalvm.libgraal.jni.JNILibGraalScope
StackMap stack:
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.leaf:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 scope Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
Signature: ()Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
public <P extends java.lang.Enum<P>> org.graalvm.libgraal.jni.JNILibGraalScope<P> narrow(java.lang.Class<P>);
descriptor: (Ljava/lang/Class;)Lorg/graalvm/libgraal/jni/JNILibGraalScope;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.id:Ljava/lang/Enum;
ifnonnull 2
1: new java.lang.ClassCastException
dup
new java.lang.StringBuilder
dup
ldc "Expected ToLibGraalScope type is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " but the type is null."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.id:Ljava/lang/Enum;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
if_acmpeq 4
3: new java.lang.ClassCastException
dup
new java.lang.StringBuilder
dup
ldc "Expected ToLibGraalScope type is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " but actual type is "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.id:Ljava/lang/Enum;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
0 5 1 scopeIdType Ljava/lang/Class<TP;>;
Signature: <P:Ljava/lang/Enum<TP;>;>(Ljava/lang/Class<TP;>;)Lorg/graalvm/libgraal/jni/JNILibGraalScope<TP;>;
MethodParameters:
Name Flags
scopeIdType
public void <init>(java.lang.Enum<T>, org.graalvm.libgraal.jni.JNI$JNIEnv);
descriptor: (Ljava/lang/Enum;Lorg/graalvm/libgraal/jni/JNI$JNIEnv;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iconst_1
ldc "HS->LIBGRAAL[enter]: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aload 1
invokevirtual org.graalvm.libgraal.jni.JNILibGraalScope.idString:(Ljava/lang/Enum;)Ljava/lang/String;
aastore
invokestatic org.graalvm.libgraal.jni.JNIUtil.trace:(ILjava/lang/String;[Ljava/lang/Object;)V
2: aload 0
aload 1
putfield org.graalvm.libgraal.jni.JNILibGraalScope.id:Ljava/lang/Enum;
3: getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast org.graalvm.libgraal.jni.JNILibGraalScope
astore 3
start local 3 4: aload 0
aload 2
putfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
5: aload 3
ifnonnull 11
6: aload 2
bipush 64
invokestatic org.graalvm.libgraal.jni.JNIUtil.PushLocalFrame:(Lorg/graalvm/libgraal/jni/JNI$JNIEnv;I)I
pop
7: aload 0
astore 3
8: aload 0
aconst_null
putfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
9: getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
aload 0
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
10: goto 14
11: StackMap locals: org.graalvm.libgraal.jni.JNILibGraalScope java.lang.Enum org.graalvm.libgraal.jni.JNI$JNIEnv org.graalvm.libgraal.jni.JNILibGraalScope
StackMap stack:
aload 3
getfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
if_acmpeq 13
12: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Cannot mix JNI scopes: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " and "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield org.graalvm.libgraal.jni.JNILibGraalScope.leaf:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
putfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
14: StackMap locals:
StackMap stack:
aload 3
aload 0
putfield org.graalvm.libgraal.jni.JNILibGraalScope.leaf:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
0 16 1 id Ljava/lang/Enum<TT;>;
0 16 2 env Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
4 16 3 top Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
Signature: (Ljava/lang/Enum<TT;>;Lorg/graalvm/libgraal/jni/JNI$JNIEnv;)V
MethodParameters:
Name Flags
id
env
private java.lang.String idString(java.lang.Enum<T>);
descriptor: (Ljava/lang/Enum;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.Enum.toString:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: ldc "<called from VM>"
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
0 3 1 v Ljava/lang/Enum<TT;>;
Signature: (Ljava/lang/Enum<TT;>;)Ljava/lang/String;
MethodParameters:
Name Flags
v
public void setObjectResult(org.graalvm.libgraal.jni.JNI$JObject);
descriptor: (Lorg/graalvm/libgraal/jni/JNI$JObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.graalvm.libgraal.jni.JNILibGraalScope.objResult:Lorg/graalvm/libgraal/jni/JNI$JObject;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
0 2 1 obj Lorg/graalvm/libgraal/jni/JNI$JObject;
MethodParameters:
Name Flags
obj
public <R extends org.graalvm.libgraal.jni.JNI$JObject> R getObjectResult();
descriptor: ()Lorg/graalvm/libgraal/jni/JNI$JObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.objResult:Lorg/graalvm/libgraal/jni/JNI$JObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
Signature: <R::Lorg/graalvm/libgraal/jni/JNI$JObject;>()TR;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.locals:Lorg/graalvm/libgraal/jni/HSObject;
invokestatic org.graalvm.libgraal.jni.HSObject.invalidate:(Lorg/graalvm/libgraal/jni/HSObject;)I
pop
1: aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
ifnonnull 7
2: getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
aload 0
if_acmpeq 4
3: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected JNI scope: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
getstatic org.graalvm.libgraal.jni.JNILibGraalScope.topScope:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
5: aload 0
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.objResult:Lorg/graalvm/libgraal/jni/JNI$JObject;
invokestatic org.graalvm.libgraal.jni.JNIUtil.PopLocalFrame:(Lorg/graalvm/libgraal/jni/JNI$JNIEnv;Lorg/graalvm/libgraal/jni/JNI$JObject;)Lorg/graalvm/libgraal/jni/JNI$JObject;
putfield org.graalvm.libgraal.jni.JNILibGraalScope.objResult:Lorg/graalvm/libgraal/jni/JNI$JObject;
6: goto 12
7: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
astore 1
start local 1 8: goto 10
9: StackMap locals: org.graalvm.libgraal.jni.JNILibGraalScope
StackMap stack:
aload 1
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
astore 1
10: StackMap locals:
StackMap stack:
aload 1
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
ifnonnull 9
11: aload 1
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
putfield org.graalvm.libgraal.jni.JNILibGraalScope.leaf:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
end local 1 12: StackMap locals:
StackMap stack:
iconst_1
ldc "HS->LIBGRAAL[ exit]: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.id:Ljava/lang/Enum;
invokevirtual org.graalvm.libgraal.jni.JNILibGraalScope.idString:(Ljava/lang/Enum;)Ljava/lang/String;
aastore
invokestatic org.graalvm.libgraal.jni.JNIUtil.trace:(ILjava/lang/String;[Ljava/lang/Object;)V
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
8 12 1 top Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
int depth();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
astore 2
start local 2 2: goto 5
3: StackMap locals: int org.graalvm.libgraal.jni.JNILibGraalScope
StackMap stack:
iinc 1 1
4: aload 2
getfield org.graalvm.libgraal.jni.JNILibGraalScope.parent:Lorg/graalvm/libgraal/jni/JNILibGraalScope;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 3
6: iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
1 7 1 depth I
2 7 2 ancestor Lorg/graalvm/libgraal/jni/JNILibGraalScope<*>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "JNILibGraalScope["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.graalvm.libgraal.jni.JNILibGraalScope.depth:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]@"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.graalvm.libgraal.jni.JNILibGraalScope.env:Lorg/graalvm/libgraal/jni/JNI$JNIEnv;
invokeinterface org.graalvm.libgraal.jni.JNI$JNIEnv.rawValue:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/libgraal/jni/JNILibGraalScope<TT;>;
}
Signature: <T:Ljava/lang/Enum<TT;>;>Ljava/lang/Object;Ljava/lang/AutoCloseable;
SourceFile: "JNILibGraalScope.java"
InnerClasses:
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