final class com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport extends com.oracle.svm.truffle.nfi.TruffleNFISupport
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport
super_class: com.oracle.svm.truffle.nfi.TruffleNFISupport
{
static void initialize();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lcom/oracle/svm/truffle/nfi/TruffleNFISupport;
new com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport
dup
invokespecial com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport.<init>:()V
invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
1: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "_errno"
invokespecial com.oracle.svm.truffle.nfi.TruffleNFISupport.<init>:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/truffle/nfi/windows/WindowsTruffleNFISupport;
protected 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: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.windows.headers.LibC.strdup:(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 1 0 this Lcom/oracle/svm/truffle/nfi/windows/WindowsTruffleNFISupport;
0 1 1 src Lorg/graalvm/nativeimage/c/type/CCharPointer;
MethodParameters:
Name Flags
src
protected long loadLibraryImpl(long, java.lang.String, int);
descriptor: (JLjava/lang/String;I)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=9, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 3
astore 5
start local 5 1: aload 5
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
astore 6
start local 6 2: aload 6
invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
astore 7
start local 7 3: aload 7
invokestatic com.oracle.svm.core.windows.headers.WinBase.LoadLibraryA:(Lorg/graalvm/word/PointerBase;)Lcom/oracle/svm/core/windows/headers/WinBase$HMODULE;
astore 8
start local 8 4: aload 8
invokeinterface com.oracle.svm.core.windows.headers.WinBase$HMODULE.isNull:()Z
ifeq 7
5: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
6: new com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIUnsatisfiedLinkError
dup
aload 5
invokestatic com.oracle.svm.core.windows.WindowsUtils.lastErrorString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIUnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
ldc Ljava/lang/RuntimeException;
invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.convertUnknownValue:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.RuntimeException
athrow
7: StackMap locals: com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport long java.lang.String int java.lang.String org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder org.graalvm.nativeimage.c.type.CCharPointer com.oracle.svm.core.windows.headers.WinBase$HMODULE
StackMap stack:
aload 8
invokeinterface com.oracle.svm.core.windows.headers.WinBase$HMODULE.rawValue:()J
lreturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/truffle/nfi/windows/WindowsTruffleNFISupport;
0 8 1 nativeContext J
0 8 3 name Ljava/lang/String;
0 8 4 flags I
1 8 5 dllPath Ljava/lang/String;
2 8 6 dllpathPin Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
3 8 7 dllPathPtr Lorg/graalvm/nativeimage/c/type/CCharPointer;
4 8 8 dlhandle Lcom/oracle/svm/core/windows/headers/WinBase$HMODULE;
MethodParameters:
Name Flags
nativeContext
name
flags
protected void freeLibraryImpl(long);
descriptor: (J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: lload 1
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
invokestatic com.oracle.svm.core.windows.headers.WinBase.FreeLibrary:(Lorg/graalvm/word/PointerBase;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/truffle/nfi/windows/WindowsTruffleNFISupport;
0 2 1 library J
MethodParameters:
Name Flags
library
protected long lookupImpl(long, long, java.lang.String);
descriptor: (JJLjava/lang/String;)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=11, args_size=4
start local 0 start local 1 start local 3 start local 5 0: invokestatic com.oracle.svm.core.jdk.PlatformNativeLibrarySupport.singleton:()Lcom/oracle/svm/core/jdk/PlatformNativeLibrarySupport;
astore 6
start local 6 1: lload 3
lconst_0
lcmp
ifne 4
2: aload 6
aload 5
invokevirtual com.oracle.svm.core.jdk.PlatformNativeLibrarySupport.findBuiltinSymbol:(Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
astore 7
start local 7 3: goto 13
end local 7 4: StackMap locals: com.oracle.svm.core.jdk.PlatformNativeLibrarySupport
StackMap stack:
aconst_null
astore 8
aconst_null
astore 9
5: aload 5
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
astore 10
start local 10 6: lload 3
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.WinBase$HMODULE
aload 10
invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
invokestatic com.oracle.svm.core.windows.headers.WinBase.GetProcAddress:(Lcom/oracle/svm/core/windows/headers/WinBase$HMODULE;Lorg/graalvm/word/PointerBase;)Lorg/graalvm/word/PointerBase;
astore 7
start local 7 7: aload 10
ifnull 13
aload 10
invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
goto 13
end local 7 StackMap locals: com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport long long java.lang.String com.oracle.svm.core.jdk.PlatformNativeLibrarySupport top java.lang.Throwable java.lang.Throwable org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder
StackMap stack: java.lang.Throwable
8: astore 8
aload 10
ifnull 9
aload 10
invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
end local 10 StackMap locals:
StackMap stack:
9: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 9
aload 8
ifnonnull 11
aload 9
astore 8
goto 12
StackMap locals:
StackMap stack:
11: aload 8
aload 9
if_acmpeq 12
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 8
athrow
start local 7 13: StackMap locals: com.oracle.svm.truffle.nfi.windows.WindowsTruffleNFISupport long long java.lang.String com.oracle.svm.core.jdk.PlatformNativeLibrarySupport org.graalvm.word.PointerBase
StackMap stack:
aload 7
invokeinterface org.graalvm.word.PointerBase.isNull:()Z
ifeq 16
14: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
15: new com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIUnsatisfiedLinkError
dup
aload 5
invokestatic com.oracle.svm.core.windows.WindowsUtils.lastErrorString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial com.oracle.svm.truffle.nfi.Target_com_oracle_truffle_nfi_impl_NFIUnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
ldc Ljava/lang/RuntimeException;
invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.convertUnknownValue:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.RuntimeException
athrow
16: StackMap locals:
StackMap stack:
aload 7
invokeinterface org.graalvm.word.PointerBase.rawValue:()J
lreturn
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/svm/truffle/nfi/windows/WindowsTruffleNFISupport;
0 17 1 nativeContext J
0 17 3 library J
0 17 5 name Ljava/lang/String;
1 17 6 nativeLibrarySupport Lcom/oracle/svm/core/jdk/PlatformNativeLibrarySupport;
3 4 7 ret Lorg/graalvm/word/PointerBase;
7 8 7 ret Lorg/graalvm/word/PointerBase;
13 17 7 ret Lorg/graalvm/word/PointerBase;
6 9 10 symbol Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
Exception table:
from to target type
6 7 8 any
5 10 10 any
MethodParameters:
Name Flags
nativeContext
library
name
}
SourceFile: "WindowsTruffleNFIFeature.java"
InnerClasses:
public abstract HMODULE = com.oracle.svm.core.windows.headers.WinBase$HMODULE of com.oracle.svm.core.windows.headers.WinBase
public abstract CCharPointerHolder = org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder of org.graalvm.nativeimage.c.type.CTypeConversion