public abstract class com.oracle.svm.truffle.nfi.TruffleNFISupport
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.svm.truffle.nfi.TruffleNFISupport
super_class: java.lang.Object
{
static final java.nio.charset.Charset UTF8;
descriptor: Ljava/nio/charset/Charset;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final com.oracle.svm.core.threadlocal.FastThreadLocalObject<com.oracle.svm.truffle.nfi.LocalNativeScope> currentScope;
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/truffle/nfi/LocalNativeScope;>;
private final org.graalvm.nativeimage.ObjectHandles globalHandles;
descriptor: Lorg/graalvm/nativeimage/ObjectHandles;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.nativeimage.ObjectHandles closureHandles;
descriptor: Lorg/graalvm/nativeimage/ObjectHandles;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.nativeimage.ObjectHandles contextHandles;
descriptor: Lorg/graalvm/nativeimage/ObjectHandles;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public final java.lang.String errnoGetterFunctionName;
descriptor: Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, 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=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
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.truffle.nfi.TruffleNFISupport.$assertionsDisabled:Z
3: ldc "utf8"
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
putstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.UTF8:Ljava/nio/charset/Charset;
4: ldc Lcom/oracle/svm/truffle/nfi/LocalNativeScope;
invokestatic com.oracle.svm.core.threadlocal.FastThreadLocalFactory.createObject:(Ljava/lang/Class;)Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
putstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.truffle.nfi.TruffleNFISupport.errnoGetterFunctionName:Ljava/lang/String;
2: aload 0
invokestatic org.graalvm.nativeimage.ObjectHandles.create:()Lorg/graalvm/nativeimage/ObjectHandles;
putfield com.oracle.svm.truffle.nfi.TruffleNFISupport.globalHandles:Lorg/graalvm/nativeimage/ObjectHandles;
3: aload 0
invokestatic org.graalvm.nativeimage.ObjectHandles.create:()Lorg/graalvm/nativeimage/ObjectHandles;
putfield com.oracle.svm.truffle.nfi.TruffleNFISupport.closureHandles:Lorg/graalvm/nativeimage/ObjectHandles;
4: aload 0
invokestatic org.graalvm.nativeimage.ObjectHandles.create:()Lorg/graalvm/nativeimage/ObjectHandles;
putfield com.oracle.svm.truffle.nfi.TruffleNFISupport.contextHandles:Lorg/graalvm/nativeimage/ObjectHandles;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 6 1 errnoLocation Ljava/lang/String;
MethodParameters:
Name Flags
errnoLocation
public static com.oracle.svm.truffle.nfi.LocalNativeScope createLocalScope(int);
descriptor: (I)Lcom/oracle/svm/truffle/nfi/LocalNativeScope;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.get:()Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.LocalNativeScope
astore 1
start local 1 1: new com.oracle.svm.truffle.nfi.LocalNativeScope
dup
aload 1
iload 0
invokespecial com.oracle.svm.truffle.nfi.LocalNativeScope.<init>:(Lcom/oracle/svm/truffle/nfi/LocalNativeScope;I)V
astore 2
start local 2 2: getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
aload 2
invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.set:(Ljava/lang/Object;)V
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 pinCount I
1 4 1 parent Lcom/oracle/svm/truffle/nfi/LocalNativeScope;
2 4 2 ret Lcom/oracle/svm/truffle/nfi/LocalNativeScope;
MethodParameters:
Name Flags
pinCount
public static void closeLocalScope(com.oracle.svm.truffle.nfi.LocalNativeScope, com.oracle.svm.truffle.nfi.LocalNativeScope);
descriptor: (Lcom/oracle/svm/truffle/nfi/LocalNativeScope;Lcom/oracle/svm/truffle/nfi/LocalNativeScope;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.get:()Ljava/lang/Object;
aload 0
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
aload 1
invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.set:(Ljava/lang/Object;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 current Lcom/oracle/svm/truffle/nfi/LocalNativeScope;
0 3 1 parent Lcom/oracle/svm/truffle/nfi/LocalNativeScope;
MethodParameters:
Name Flags
current
parent
public static com.oracle.svm.truffle.nfi.TruffleObjectHandle createLocalHandle(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.get:()Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.LocalNativeScope
aload 0
invokevirtual com.oracle.svm.truffle.nfi.LocalNativeScope.createLocalHandle:(Ljava/lang/Object;)Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public com.oracle.svm.truffle.nfi.TruffleObjectHandle createGlobalHandle(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.globalHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
invokeinterface org.graalvm.nativeimage.ObjectHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
checkcast com.oracle.svm.truffle.nfi.TruffleObjectHandle
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 1 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public void destroyGlobalHandle(com.oracle.svm.truffle.nfi.TruffleObjectHandle);
descriptor: (Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.graalvm.word.SignedWord
astore 2
start local 2 1: aload 2
iconst_0
invokeinterface org.graalvm.word.SignedWord.greaterThan:(I)Z
ifeq 3
2: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.globalHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 2
checkcast org.graalvm.nativeimage.ObjectHandle
invokeinterface org.graalvm.nativeimage.ObjectHandles.destroy:(Lorg/graalvm/nativeimage/ObjectHandle;)V
3: StackMap locals: org.graalvm.word.SignedWord
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 4 1 handle Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;
1 4 2 word Lorg/graalvm/word/SignedWord;
MethodParameters:
Name Flags
handle
public java.lang.Object resolveHandle(com.oracle.svm.truffle.nfi.TruffleObjectHandle);
descriptor: (Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.graalvm.word.SignedWord
astore 2
start local 2 1: aload 2
iconst_0
invokeinterface org.graalvm.word.SignedWord.equal:(I)Z
ifeq 3
2: aconst_null
areturn
3: StackMap locals: org.graalvm.word.SignedWord
StackMap stack:
aload 2
iconst_0
invokeinterface org.graalvm.word.SignedWord.greaterThan:(I)Z
ifeq 5
4: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.globalHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 2
checkcast org.graalvm.nativeimage.ObjectHandle
invokeinterface org.graalvm.nativeimage.ObjectHandles.get:(Lorg/graalvm/nativeimage/ObjectHandle;)Ljava/lang/Object;
areturn
5: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.currentScope:Lcom/oracle/svm/core/threadlocal/FastThreadLocalObject;
invokevirtual com.oracle.svm.core.threadlocal.FastThreadLocalObject.get:()Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.LocalNativeScope
aload 1
invokevirtual com.oracle.svm.truffle.nfi.LocalNativeScope.resolveLocalHandle:(Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 6 1 handle Lcom/oracle/svm/truffle/nfi/TruffleObjectHandle;
1 6 2 word Lorg/graalvm/word/SignedWord;
MethodParameters:
Name Flags
handle
public com.oracle.svm.truffle.nfi.LibFFI$NativeClosureHandle createClosureHandle(com.oracle.svm.truffle.nfi.NativeClosure);
descriptor: (Lcom/oracle/svm/truffle/nfi/NativeClosure;)Lcom/oracle/svm/truffle/nfi/LibFFI$NativeClosureHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.closureHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
invokeinterface org.graalvm.nativeimage.ObjectHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
checkcast com.oracle.svm.truffle.nfi.LibFFI$NativeClosureHandle
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 1 1 closure Lcom/oracle/svm/truffle/nfi/NativeClosure;
MethodParameters:
Name Flags
closure
public com.oracle.svm.truffle.nfi.NativeClosure resolveClosureHandle(com.oracle.svm.truffle.nfi.LibFFI$NativeClosureHandle);
descriptor: (Lcom/oracle/svm/truffle/nfi/LibFFI$NativeClosureHandle;)Lcom/oracle/svm/truffle/nfi/NativeClosure;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.closureHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
checkcast org.graalvm.nativeimage.ObjectHandle
invokeinterface org.graalvm.nativeimage.ObjectHandles.get:(Lorg/graalvm/nativeimage/ObjectHandle;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.NativeClosure
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 1 1 handle Lcom/oracle/svm/truffle/nfi/LibFFI$NativeClosureHandle;
MethodParameters:
Name Flags
handle
public void destroyClosureHandle(com.oracle.svm.truffle.nfi.LibFFI$NativeClosureHandle);
descriptor: (Lcom/oracle/svm/truffle/nfi/LibFFI$NativeClosureHandle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.closureHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
checkcast org.graalvm.nativeimage.ObjectHandle
invokeinterface org.graalvm.nativeimage.ObjectHandles.destroy:(Lorg/graalvm/nativeimage/ObjectHandle;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 2 1 handle Lcom/oracle/svm/truffle/nfi/LibFFI$NativeClosureHandle;
MethodParameters:
Name Flags
handle
public com.oracle.svm.truffle.nfi.NativeAPI$TruffleContextHandle createContextHandle(com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIContext);
descriptor: (Lcom/oracle/svm/truffle/nfi/Target_com_oracle_truffle_nfi_impl_NFIContext;)Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.contextHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
invokeinterface org.graalvm.nativeimage.ObjectHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
checkcast com.oracle.svm.truffle.nfi.NativeAPI$TruffleContextHandle
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 1 1 context Lcom/oracle/svm/truffle/nfi/Target_com_oracle_truffle_nfi_impl_NFIContext;
MethodParameters:
Name Flags
context
public com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIContext resolveContextHandle(com.oracle.svm.truffle.nfi.NativeAPI$TruffleContextHandle);
descriptor: (Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;)Lcom/oracle/svm/truffle/nfi/Target_com_oracle_truffle_nfi_impl_NFIContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.contextHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
checkcast org.graalvm.nativeimage.ObjectHandle
invokeinterface org.graalvm.nativeimage.ObjectHandles.get:(Lorg/graalvm/nativeimage/ObjectHandle;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIContext
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 1 1 handle Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;
MethodParameters:
Name Flags
handle
public void destroyContextHandle(com.oracle.svm.truffle.nfi.NativeAPI$TruffleContextHandle);
descriptor: (Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.truffle.nfi.TruffleNFISupport.contextHandles:Lorg/graalvm/nativeimage/ObjectHandles;
aload 1
checkcast org.graalvm.nativeimage.ObjectHandle
invokeinterface org.graalvm.nativeimage.ObjectHandles.destroy:(Lorg/graalvm/nativeimage/ObjectHandle;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
0 2 1 handle Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;
MethodParameters:
Name Flags
handle
public static java.lang.String utf8ToJavaString(org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.word.WordFactory.zero:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.ComparableWord
invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.equal:(Lorg/graalvm/word/ComparableWord;)Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.svm.core.SubstrateUtil.strlen:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 3: aload 0
aload 1
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
l2i
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.asByteBuffer:(Lorg/graalvm/word/PointerBase;I)Ljava/nio/ByteBuffer;
astore 2
start local 2 4: getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.UTF8:Ljava/nio/charset/Charset;
aload 2
invokevirtual java.nio.charset.Charset.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
invokevirtual java.nio.CharBuffer.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 str Lorg/graalvm/nativeimage/c/type/CCharPointer;
3 5 1 len Lorg/graalvm/word/UnsignedWord;
4 5 2 buffer Ljava/nio/ByteBuffer;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
str
public static byte[] javaStringToUtf8(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new com.oracle.svm.truffle.nfi.TruffleNFISupport$ZeroTerminatedCharSequence
dup
aload 0
invokespecial com.oracle.svm.truffle.nfi.TruffleNFISupport$ZeroTerminatedCharSequence.<init>:(Ljava/lang/CharSequence;)V
invokestatic java.nio.CharBuffer.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;
astore 1
start local 1 1: getstatic com.oracle.svm.truffle.nfi.TruffleNFISupport.UTF8:Ljava/nio/charset/Charset;
aload 1
invokevirtual java.nio.charset.Charset.encode:(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 str Ljava/lang/String;
1 2 1 input Ljava/nio/CharBuffer;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
str
protected abstract org.graalvm.nativeimage.c.type.CCharPointer strdupImpl(org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/nativeimage/c/type/CCharPointer;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
src
protected abstract long loadLibraryImpl(long, java.lang.String, int);
descriptor: (JLjava/lang/String;I)J
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
nativeContext
name
flags
protected abstract void freeLibraryImpl(long);
descriptor: (J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
library
protected abstract long lookupImpl(long, long, java.lang.String);
descriptor: (JJLjava/lang/String;)J
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
nativeContext
library
name
public static org.graalvm.nativeimage.c.type.CCharPointer strdup(org.graalvm.nativeimage.c.type.CCharPointer);
descriptor: (Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/nativeimage/c/type/CCharPointer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.TruffleNFISupport
astore 1
start local 1 1: aload 1
aload 0
invokevirtual com.oracle.svm.truffle.nfi.TruffleNFISupport.strdupImpl:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Lorg/graalvm/nativeimage/c/type/CCharPointer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 src Lorg/graalvm/nativeimage/c/type/CCharPointer;
1 2 1 truffleNFISupport Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
MethodParameters:
Name Flags
src
public static long loadLibrary(long, java.lang.String, int);
descriptor: (JLjava/lang/String;I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 2 start local 3 0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.TruffleNFISupport
astore 4
start local 4 1: aload 4
lload 0
aload 2
iload 3
invokevirtual com.oracle.svm.truffle.nfi.TruffleNFISupport.loadLibraryImpl:(JLjava/lang/String;I)J
lreturn
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 nativeContext J
0 2 2 name Ljava/lang/String;
0 2 3 flags I
1 2 4 truffleNFISupport Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
MethodParameters:
Name Flags
nativeContext
name
flags
public static void freeLibrary(long);
descriptor: (J)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.TruffleNFISupport
astore 2
start local 2 1: aload 2
lload 0
invokevirtual com.oracle.svm.truffle.nfi.TruffleNFISupport.freeLibraryImpl:(J)V
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 library J
1 3 2 truffleNFISupport Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
MethodParameters:
Name Flags
library
public static long lookup(long, long, java.lang.String);
descriptor: (JJLjava/lang/String;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 2 start local 4 0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.TruffleNFISupport
astore 5
start local 5 1: aload 5
lload 0
lload 2
aload 4
invokevirtual com.oracle.svm.truffle.nfi.TruffleNFISupport.lookupImpl:(JJLjava/lang/String;)J
lreturn
end local 5 end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 nativeContext J
0 2 2 library J
0 2 4 name Ljava/lang/String;
1 2 5 truffleNFISupport Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
MethodParameters:
Name Flags
nativeContext
library
name
protected static com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIContext getContext(long);
descriptor: (J)Lcom/oracle/svm/truffle/nfi/Target_com_oracle_truffle_nfi_impl_NFIContext;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.truffle.nfi.TruffleNFISupport
astore 2
start local 2 1: lload 0
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.truffle.nfi.NativeAPI$NativeTruffleContext
astore 3
start local 3 2: aload 2
aload 3
invokeinterface com.oracle.svm.truffle.nfi.NativeAPI$NativeTruffleContext.contextHandle:()Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;
invokevirtual com.oracle.svm.truffle.nfi.TruffleNFISupport.resolveContextHandle:(Lcom/oracle/svm/truffle/nfi/NativeAPI$TruffleContextHandle;)Lcom/oracle/svm/truffle/nfi/Target_com_oracle_truffle_nfi_impl_NFIContext;
areturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 nativeContext J
1 3 2 truffleNFISupport Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
2 3 3 ctx Lcom/oracle/svm/truffle/nfi/NativeAPI$NativeTruffleContext;
MethodParameters:
Name Flags
nativeContext
}
SourceFile: "TruffleNFISupport.java"
NestMembers:
com.oracle.svm.truffle.nfi.TruffleNFISupport$ZeroTerminatedCharSequence
InnerClasses:
abstract NativeClosureHandle = com.oracle.svm.truffle.nfi.LibFFI$NativeClosureHandle of com.oracle.svm.truffle.nfi.LibFFI
public abstract NativeTruffleContext = com.oracle.svm.truffle.nfi.NativeAPI$NativeTruffleContext of com.oracle.svm.truffle.nfi.NativeAPI
abstract TruffleContextHandle = com.oracle.svm.truffle.nfi.NativeAPI$TruffleContextHandle of com.oracle.svm.truffle.nfi.NativeAPI
private final ZeroTerminatedCharSequence = com.oracle.svm.truffle.nfi.TruffleNFISupport$ZeroTerminatedCharSequence of com.oracle.svm.truffle.nfi.TruffleNFISupport
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives