public class com.oracle.svm.jni.JNILibraryInitializer implements com.oracle.svm.core.jdk.NativeLibrarySupport$LibraryInitializer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.jni.JNILibraryInitializer
super_class: java.lang.Object
{
private final org.graalvm.collections.EconomicMap<java.lang.String, com.oracle.svm.core.c.CGlobalData<org.graalvm.word.PointerBase>> onLoadCGlobalDataMap;
descriptor: Lorg/graalvm/collections/EconomicMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/collections/EconomicMap<Ljava/lang/String;Lcom/oracle/svm/core/c/CGlobalData<Lorg/graalvm/word/PointerBase;>;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;)Lorg/graalvm/collections/EconomicMap;
putfield com.oracle.svm.jni.JNILibraryInitializer.onLoadCGlobalDataMap:Lorg/graalvm/collections/EconomicMap;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/jni/JNILibraryInitializer;
public static java.lang.String getOnLoadName(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: ldc "JNI_OnLoad"
astore 2
start local 2 1: iload 1
ifeq 3
2: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 libName Ljava/lang/String;
0 4 1 isBuiltIn Z
1 4 2 name Ljava/lang/String;
MethodParameters:
Name Flags
libName
isBuiltIn
private static void callOnLoadFunction(java.lang.String, org.graalvm.word.PointerBase);
descriptor: (Ljava/lang/String;Lorg/graalvm/word/PointerBase;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.graalvm.word.PointerBase.isNonNull:()Z
ifeq 4
1: aload 1
checkcast com.oracle.svm.jni.JNIOnLoadFunctionPointer
astore 2
start local 2 2: aload 2
invokestatic com.oracle.svm.jni.functions.JNIFunctionTables.singleton:()Lcom/oracle/svm/jni/functions/JNIFunctionTables;
invokevirtual com.oracle.svm.jni.functions.JNIFunctionTables.getGlobalJavaVM:()Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.VoidPointer
invokeinterface com.oracle.svm.jni.JNIOnLoadFunctionPointer.invoke:(Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;Lorg/graalvm/nativeimage/c/type/VoidPointer;)I
istore 3
start local 3 3: aload 0
iload 3
invokestatic com.oracle.svm.jni.JNILibraryInitializer.checkSupportedJNIVersion:(Ljava/lang/String;I)V
end local 3 end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 libName Ljava/lang/String;
0 5 1 onLoadFunction Lorg/graalvm/word/PointerBase;
2 4 2 onLoad Lcom/oracle/svm/jni/JNIOnLoadFunctionPointer;
3 4 3 expected I
MethodParameters:
Name Flags
libName
onLoadFunction
private static void checkSupportedJNIVersion(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_8:()I
if_icmpeq 3
iload 1
invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_6:()I
if_icmpeq 3
iload 1
invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_4:()I
if_icmpeq 3
iload 1
invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_2:()I
if_icmpeq 3
iload 1
invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_1:()I
if_icmpeq 3
1: new java.lang.StringBuilder
dup
ldc "Unsupported JNI version 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", required by "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 2: new java.lang.UnsatisfiedLinkError
dup
aload 2
invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
end local 2 3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 libName Ljava/lang/String;
0 4 1 expected I
2 3 2 message Ljava/lang/String;
MethodParameters:
Name Flags
libName
expected
public boolean fillCGlobalDataMap(java.util.Collection<java.lang.String>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: bipush 20
anewarray java.lang.String
dup
iconst_0
ldc "net"
aastore
dup
iconst_1
ldc "java"
aastore
dup
iconst_2
ldc "nio"
aastore
dup
iconst_3
ldc "zip"
aastore
dup
iconst_4
ldc "sunec"
aastore
dup
iconst_5
ldc "jaas"
aastore
dup
bipush 6
ldc "sctp"
aastore
dup
bipush 7
ldc "extnet"
aastore
dup
bipush 8
1: ldc "j2gss"
aastore
dup
bipush 9
ldc "j2pkcs11"
aastore
dup
bipush 10
ldc "j2pcsc"
aastore
dup
bipush 11
ldc "prefs"
aastore
dup
bipush 12
ldc "verify"
aastore
dup
bipush 13
ldc "awt"
aastore
dup
bipush 14
ldc "awt_xawt"
aastore
dup
bipush 15
ldc "awt_headless"
aastore
dup
bipush 16
ldc "lcms"
aastore
dup
bipush 17
2: ldc "fontmanager"
aastore
dup
bipush 18
ldc "javajpeg"
aastore
dup
bipush 19
ldc "mlib_image"
aastore
3: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 2
start local 2 4: new java.util.ArrayList
dup
aload 1
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 5: aload 3
aload 2
invokevirtual java.util.ArrayList.retainAll:(Ljava/util/Collection;)Z
pop
6: iconst_0
istore 4
start local 4 7: aload 3
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 6
goto 13
StackMap locals: com.oracle.svm.jni.JNILibraryInitializer java.util.Collection java.util.List java.util.ArrayList int top java.util.Iterator
StackMap stack:
8: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 9: aload 0
getfield com.oracle.svm.jni.JNILibraryInitializer.onLoadCGlobalDataMap:Lorg/graalvm/collections/EconomicMap;
aload 5
invokeinterface org.graalvm.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifne 13
10: aload 5
iconst_1
invokestatic com.oracle.svm.jni.JNILibraryInitializer.getOnLoadName:(Ljava/lang/String;Z)Ljava/lang/String;
iconst_1
invokestatic com.oracle.svm.core.c.CGlobalDataFactory.forSymbol:(Ljava/lang/String;Z)Lcom/oracle/svm/core/c/CGlobalData;
astore 7
start local 7 11: aload 0
getfield com.oracle.svm.jni.JNILibraryInitializer.onLoadCGlobalDataMap:Lorg/graalvm/collections/EconomicMap;
aload 5
aload 7
invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: iconst_1
istore 4
end local 7 end local 5 13: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
14: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/svm/jni/JNILibraryInitializer;
0 15 1 staticLibNames Ljava/util/Collection<Ljava/lang/String;>;
4 15 2 libsWithOnLoad Ljava/util/List<Ljava/lang/String;>;
5 15 3 localStaticLibNames Ljava/util/ArrayList<Ljava/lang/String;>;
7 15 4 mapIsChanged Z
9 13 5 libName Ljava/lang/String;
11 13 7 onLoadCGlobalData Lcom/oracle/svm/core/c/CGlobalData<Lorg/graalvm/word/PointerBase;>;
Signature: (Ljava/util/Collection<Ljava/lang/String;>;)Z
MethodParameters:
Name Flags
staticLibNames
public boolean isBuiltinLibrary(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.jdk.PlatformNativeLibrarySupport.singleton:()Lcom/oracle/svm/core/jdk/PlatformNativeLibrarySupport;
aload 1
invokevirtual com.oracle.svm.core.jdk.PlatformNativeLibrarySupport.isBuiltinLibrary:(Ljava/lang/String;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
iconst_1
invokestatic com.oracle.svm.jni.JNILibraryInitializer.getOnLoadName:(Ljava/lang/String;Z)Ljava/lang/String;
astore 2
start local 2 3: invokestatic com.oracle.svm.core.jdk.PlatformNativeLibrarySupport.singleton:()Lcom/oracle/svm/core/jdk/PlatformNativeLibrarySupport;
aload 2
invokevirtual com.oracle.svm.core.jdk.PlatformNativeLibrarySupport.findBuiltinSymbol:(Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
astore 3
start local 3 4: aload 3
invokeinterface org.graalvm.word.PointerBase.isNonNull:()Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/jni/JNILibraryInitializer;
0 5 1 libName Ljava/lang/String;
3 5 2 onLoadName Ljava/lang/String;
4 5 3 onLoad Lorg/graalvm/word/PointerBase;
MethodParameters:
Name Flags
libName
public void initialize(com.oracle.svm.core.jdk.PlatformNativeLibrarySupport$NativeLibrary);
descriptor: (Lcom/oracle/svm/core/jdk/PlatformNativeLibrarySupport$NativeLibrary;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.oracle.svm.core.jdk.PlatformNativeLibrarySupport$NativeLibrary.getCanonicalIdentifier:()Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokeinterface com.oracle.svm.core.jdk.PlatformNativeLibrarySupport$NativeLibrary.isBuiltin:()Z
ifeq 7
2: aload 0
aload 2
invokevirtual com.oracle.svm.jni.JNILibraryInitializer.getOnLoadSymbolAddress:(Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
astore 3
start local 3 3: aload 3
invokeinterface org.graalvm.word.PointerBase.isNull:()Z
ifeq 9
4: aload 2
iconst_1
invokestatic com.oracle.svm.jni.JNILibraryInitializer.getOnLoadName:(Ljava/lang/String;Z)Ljava/lang/String;
astore 4
start local 4 5: aload 1
aload 4
invokeinterface com.oracle.svm.core.jdk.PlatformNativeLibrarySupport$NativeLibrary.findSymbol:(Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
astore 3
end local 4 6: goto 9
end local 3 7: StackMap locals: java.lang.String
StackMap stack:
aload 2
iconst_0
invokestatic com.oracle.svm.jni.JNILibraryInitializer.getOnLoadName:(Ljava/lang/String;Z)Ljava/lang/String;
astore 4
start local 4 8: aload 1
aload 4
invokeinterface com.oracle.svm.core.jdk.PlatformNativeLibrarySupport$NativeLibrary.findSymbol:(Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
astore 3
end local 4 start local 3 9: StackMap locals: org.graalvm.word.PointerBase
StackMap stack:
aload 2
aload 3
invokestatic com.oracle.svm.jni.JNILibraryInitializer.callOnLoadFunction:(Ljava/lang/String;Lorg/graalvm/word/PointerBase;)V
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/jni/JNILibraryInitializer;
0 11 1 lib Lcom/oracle/svm/core/jdk/PlatformNativeLibrarySupport$NativeLibrary;
1 11 2 libName Ljava/lang/String;
3 7 3 onLoadFunction Lorg/graalvm/word/PointerBase;
9 11 3 onLoadFunction Lorg/graalvm/word/PointerBase;
5 6 4 symbolName Ljava/lang/String;
8 9 4 symbolName Ljava/lang/String;
MethodParameters:
Name Flags
lib
private org.graalvm.word.PointerBase getOnLoadSymbolAddress(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/graalvm/word/PointerBase;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.jni.JNILibraryInitializer.onLoadCGlobalDataMap:Lorg/graalvm/collections/EconomicMap;
aload 1
invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.c.CGlobalData
astore 2
start local 2 1: aload 2
ifnonnull 2
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
goto 3
StackMap locals: com.oracle.svm.core.c.CGlobalData
StackMap stack:
2: aload 2
invokevirtual com.oracle.svm.core.c.CGlobalData.get:()Lorg/graalvm/word/PointerBase;
StackMap locals:
StackMap stack: org.graalvm.word.PointerBase
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/jni/JNILibraryInitializer;
0 4 1 libName Ljava/lang/String;
1 4 2 symbol Lcom/oracle/svm/core/c/CGlobalData<Lorg/graalvm/word/PointerBase;>;
MethodParameters:
Name Flags
libName
}
SourceFile: "JNILibraryInitializer.java"
InnerClasses:
public abstract LibraryInitializer = com.oracle.svm.core.jdk.NativeLibrarySupport$LibraryInitializer of com.oracle.svm.core.jdk.NativeLibrarySupport
public abstract NativeLibrary = com.oracle.svm.core.jdk.PlatformNativeLibrarySupport$NativeLibrary of com.oracle.svm.core.jdk.PlatformNativeLibrarySupport