class com.oracle.svm.jni.functions.JNIInvocationInterface$Exports
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.svm.jni.functions.JNIInvocationInterface$Exports
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.jni.functions.JNIInvocationInterface$Exports this
         0: .line 91
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.jni.functions.JNIInvocationInterface$Exports this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/jni/functions/JNIInvocationInterface$Exports;

  static int JNI_GetCreatedJavaVMs(com.oracle.svm.jni.nativeapi.JNIJavaVMPointer, int, org.graalvm.nativeimage.c.type.CIntPointer);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIJavaVMPointer;ILorg/graalvm/nativeimage/c/type/CIntPointer;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVMPointer vmBuf
        start local 1 // int bufLen
        start local 2 // org.graalvm.nativeimage.c.type.CIntPointer nVMs
         0: .line 100
            aload 0 /* vmBuf */
            iload 1 /* bufLen */
            aload 2 /* nVMs */
            invokestatic com.oracle.svm.jni.JNIJavaVMList.gather:(Lcom/oracle/svm/jni/nativeapi/JNIJavaVMPointer;ILorg/graalvm/nativeimage/c/type/CIntPointer;)V
         1: .line 101
            invokestatic com.oracle.svm.jni.nativeapi.JNIErrors.JNI_OK:()I
            ireturn
        end local 2 // org.graalvm.nativeimage.c.type.CIntPointer nVMs
        end local 1 // int bufLen
        end local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVMPointer vmBuf
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   vmBuf  Lcom/oracle/svm/jni/nativeapi/JNIJavaVMPointer;
            0    2     1  bufLen  I
            0    2     2    nVMs  Lorg/graalvm/nativeimage/c/type/CIntPointer;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "JNI_GetCreatedJavaVMs")
      com.oracle.svm.core.c.function.CEntryPointOptions(prologue = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NoPrologue;, epilogue = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NoEpilogue;, publishAs = com.oracle.svm.core.c.function.CEntryPointOptions$Publish.SymbolOnly:Lcom/oracle/svm/core/c/function/CEntryPointOptions$Publish;, include = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NotIncludedAutomatically;)
      com.oracle.svm.core.annotate.Uninterruptible(reason = "No Java context.")
    MethodParameters:
        Name  Flags
      vmBuf   
      bufLen  
      nVMs    

  static int JNI_CreateJavaVM(com.oracle.svm.jni.nativeapi.JNIJavaVMPointer, com.oracle.svm.jni.nativeapi.JNIEnvironmentPointer, com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIJavaVMPointer;Lcom/oracle/svm/jni/nativeapi/JNIEnvironmentPointer;Lcom/oracle/svm/jni/nativeapi/JNIJavaVMInitArgs;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVMPointer vmBuf
        start local 1 // com.oracle.svm.jni.nativeapi.JNIEnvironmentPointer penv
        start local 2 // com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs vmArgs
         0: .line 163
            invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
            checkcast org.graalvm.nativeimage.c.type.WordPointer
            astore 3 /* javavmIdPointer */
        start local 3 // org.graalvm.nativeimage.c.type.WordPointer javavmIdPointer
         1: .line 164
            aload 2 /* vmArgs */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs.isNonNull:()Z
            ifeq 20
         2: .line 165
            aload 2 /* vmArgs */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs.getOptions:()Lcom/oracle/svm/jni/nativeapi/JNIJavaVMOption;
            checkcast org.graalvm.word.Pointer
            astore 4 /* p */
        start local 4 // org.graalvm.word.Pointer p
         3: .line 166
            aload 2 /* vmArgs */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs.getNOptions:()I
            istore 5 /* count */
        start local 5 // int count
         4: .line 167
            new java.util.ArrayList
            dup
            iload 5 /* count */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* options */
        start local 6 // java.util.ArrayList options
         5: .line 168
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 17
         7: .line 169
      StackMap locals: com.oracle.svm.jni.nativeapi.JNIJavaVMPointer com.oracle.svm.jni.nativeapi.JNIEnvironmentPointer com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs org.graalvm.nativeimage.c.type.WordPointer org.graalvm.word.Pointer int java.util.ArrayList int
      StackMap stack:
            aload 4 /* p */
            iload 7 /* i */
            ldc Lcom/oracle/svm/jni/nativeapi/JNIJavaVMOption;
            invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
            imul
            invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
            checkcast com.oracle.svm.jni.nativeapi.JNIJavaVMOption
            astore 8 /* option */
        start local 8 // com.oracle.svm.jni.nativeapi.JNIJavaVMOption option
         8: .line 170
            aload 8 /* option */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMOption.getOptionString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 9 /* str */
        start local 9 // org.graalvm.nativeimage.c.type.CCharPointer str
         9: .line 171
            aload 9 /* str */
            invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.isNonNull:()Z
            ifeq 16
        10: .line 172
            aload 8 /* option */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMOption.getOptionString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
            astore 10 /* optionString */
        start local 10 // java.lang.String optionString
        11: .line 173
            aload 10 /* optionString */
            aload 8 /* option */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMOption.getExtraInfo:()Lorg/graalvm/nativeimage/c/type/WordPointer;
            invokestatic com.oracle.svm.core.log.FunctionPointerLogHandler.parseVMOption:(Ljava/lang/String;Lorg/graalvm/nativeimage/c/type/WordPointer;)Z
            ifne 16
        12: .line 174
            aload 10 /* optionString */
            ldc "_javavm_id"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 175
            aload 8 /* option */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMOption.getExtraInfo:()Lorg/graalvm/nativeimage/c/type/WordPointer;
            astore 3 /* javavmIdPointer */
        14: .line 176
            goto 16
        15: .line 177
      StackMap locals: com.oracle.svm.jni.nativeapi.JNIJavaVMOption org.graalvm.nativeimage.c.type.CCharPointer java.lang.String
      StackMap stack:
            aload 6 /* options */
            aload 10 /* optionString */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.lang.String optionString
        end local 9 // org.graalvm.nativeimage.c.type.CCharPointer str
        end local 8 // com.oracle.svm.jni.nativeapi.JNIJavaVMOption option
        16: .line 168
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            iload 5 /* count */
            if_icmplt 7
        end local 7 // int i
        18: .line 182
            invokestatic com.oracle.svm.core.log.FunctionPointerLogHandler.afterParsingVMOptions:()V
        19: .line 183
            aload 6 /* options */
            iconst_0
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic com.oracle.svm.core.option.RuntimeOptionParser.parseAndConsumeAllOptions:([Ljava/lang/String;)[Ljava/lang/String;
            pop
        end local 6 // java.util.ArrayList options
        end local 5 // int count
        end local 4 // org.graalvm.word.Pointer p
        20: .line 185
      StackMap locals: com.oracle.svm.jni.nativeapi.JNIJavaVMPointer com.oracle.svm.jni.nativeapi.JNIEnvironmentPointer com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs org.graalvm.nativeimage.c.type.WordPointer
      StackMap stack:
            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;
            astore 4 /* javavm */
        start local 4 // com.oracle.svm.jni.nativeapi.JNIJavaVM javavm
        21: .line 186
            aload 4 /* javavm */
            invokestatic com.oracle.svm.jni.JNIJavaVMList.addJavaVM:(Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;)V
        22: .line 187
            aload 3 /* javavmIdPointer */
            invokeinterface org.graalvm.nativeimage.c.type.WordPointer.isNonNull:()Z
            ifeq 25
        23: .line 188
            invokestatic org.graalvm.compiler.serviceprovider.IsolateUtil.getIsolateID:()J
            lstore 5 /* javavmId */
        start local 5 // long javavmId
        24: .line 189
            aload 3 /* javavmIdPointer */
            lload 5 /* javavmId */
            invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
            invokeinterface org.graalvm.nativeimage.c.type.WordPointer.write:(Lorg/graalvm/word/WordBase;)V
        end local 5 // long javavmId
        25: .line 191
      StackMap locals: com.oracle.svm.jni.nativeapi.JNIJavaVM
      StackMap stack:
            invokestatic com.oracle.svm.core.jdk.RuntimeSupport.getRuntimeSupport:()Lcom/oracle/svm/core/jdk/RuntimeSupport;
            new com.oracle.svm.jni.functions.JNIInvocationInterface$Exports$1
            dup
            aload 4 /* javavm */
            invokespecial com.oracle.svm.jni.functions.JNIInvocationInterface$Exports$1.<init>:(Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;)V
            invokevirtual com.oracle.svm.core.jdk.RuntimeSupport.addTearDownHook:(Ljava/lang/Runnable;)V
        26: .line 197
            aload 0 /* vmBuf */
            aload 4 /* javavm */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMPointer.write:(Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;)V
        27: .line 198
            aload 1 /* penv */
            invokestatic com.oracle.svm.jni.JNIThreadLocalEnvironment.getAddress:()Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;
            invokeinterface com.oracle.svm.jni.nativeapi.JNIEnvironmentPointer.write:(Lcom/oracle/svm/jni/nativeapi/JNIEnvironment;)V
        28: .line 199
            invokestatic com.oracle.svm.jni.nativeapi.JNIErrors.JNI_OK:()I
            ireturn
        end local 4 // com.oracle.svm.jni.nativeapi.JNIJavaVM javavm
        end local 3 // org.graalvm.nativeimage.c.type.WordPointer javavmIdPointer
        end local 2 // com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs vmArgs
        end local 1 // com.oracle.svm.jni.nativeapi.JNIEnvironmentPointer penv
        end local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVMPointer vmBuf
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0            vmBuf  Lcom/oracle/svm/jni/nativeapi/JNIJavaVMPointer;
            0   29     1             penv  Lcom/oracle/svm/jni/nativeapi/JNIEnvironmentPointer;
            0   29     2           vmArgs  Lcom/oracle/svm/jni/nativeapi/JNIJavaVMInitArgs;
            1   29     3  javavmIdPointer  Lorg/graalvm/nativeimage/c/type/WordPointer;
            3   20     4                p  Lorg/graalvm/word/Pointer;
            4   20     5            count  I
            5   20     6          options  Ljava/util/ArrayList<Ljava/lang/String;>;
            6   18     7                i  I
            8   16     8           option  Lcom/oracle/svm/jni/nativeapi/JNIJavaVMOption;
            9   16     9              str  Lorg/graalvm/nativeimage/c/type/CCharPointer;
           11   16    10     optionString  Ljava/lang/String;
           21   29     4           javavm  Lcom/oracle/svm/jni/nativeapi/JNIJavaVM;
           24   25     5         javavmId  J
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "JNI_CreateJavaVM")
      com.oracle.svm.core.c.function.CEntryPointOptions(prologue = Lcom/oracle/svm/jni/functions/JNIInvocationInterface$Exports$JNICreateJavaVMPrologue;, publishAs = com.oracle.svm.core.c.function.CEntryPointOptions$Publish.SymbolOnly:Lcom/oracle/svm/core/c/function/CEntryPointOptions$Publish;, include = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NotIncludedAutomatically;)
    MethodParameters:
        Name  Flags
      vmBuf   
      penv    
      vmArgs  

  static int JNI_GetDefaultJavaVMInitArgs(com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs);
    descriptor: (Lcom/oracle/svm/jni/nativeapi/JNIJavaVMInitArgs;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs vmArgs
         0: .line 209
            aload 0 /* vmArgs */
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs.getVersion:()I
            istore 1 /* version */
        start local 1 // int version
         1: .line 210
            iload 1 /* version */
            invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_8:()I
            if_icmpeq 2
            iload 1 /* version */
            invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_6:()I
            if_icmpeq 2
            iload 1 /* version */
            invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_4:()I
            if_icmpeq 2
            iload 1 /* version */
            invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_2:()I
            if_icmpne 3
         2: .line 211
      StackMap locals: int
      StackMap stack:
            invokestatic com.oracle.svm.jni.nativeapi.JNIErrors.JNI_OK:()I
            ireturn
         3: .line 213
      StackMap locals:
      StackMap stack:
            iload 1 /* version */
            invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_1:()I
            if_icmpne 5
         4: .line 214
            aload 0 /* vmArgs */
            invokestatic com.oracle.svm.jni.nativeapi.JNIVersion.JNI_VERSION_1_2:()I
            invokeinterface com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs.setVersion:(I)V
         5: .line 216
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.jni.nativeapi.JNIErrors.JNI_ERR:()I
            ireturn
        end local 1 // int version
        end local 0 // com.oracle.svm.jni.nativeapi.JNIJavaVMInitArgs vmArgs
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0   vmArgs  Lcom/oracle/svm/jni/nativeapi/JNIJavaVMInitArgs;
            1    6     1  version  I
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "JNI_GetDefaultJavaVMInitArgs")
      com.oracle.svm.core.c.function.CEntryPointOptions(prologue = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NoPrologue;, epilogue = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NoEpilogue;, publishAs = com.oracle.svm.core.c.function.CEntryPointOptions$Publish.SymbolOnly:Lcom/oracle/svm/core/c/function/CEntryPointOptions$Publish;, include = Lcom/oracle/svm/core/c/function/CEntryPointOptions$NotIncludedAutomatically;)
      com.oracle.svm.core.annotate.Uninterruptible(reason = "No Java context")
    MethodParameters:
        Name  Flags
      vmArgs  
}
SourceFile: "JNIInvocationInterface.java"
NestHost: com.oracle.svm.jni.functions.JNIInvocationInterface
InnerClasses:
  public final Publish = com.oracle.svm.core.c.function.CEntryPointOptions$Publish of com.oracle.svm.core.c.function.CEntryPointOptions
  Exports = com.oracle.svm.jni.functions.JNIInvocationInterface$Exports of com.oracle.svm.jni.functions.JNIInvocationInterface
  com.oracle.svm.jni.functions.JNIInvocationInterface$Exports$1
  JNICreateJavaVMPrologue = com.oracle.svm.jni.functions.JNIInvocationInterface$Exports$JNICreateJavaVMPrologue of com.oracle.svm.jni.functions.JNIInvocationInterface$Exports