public class com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode extends com.oracle.truffle.nfi.test.NFITest$NFITestRootNode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode
super_class: com.oracle.truffle.nfi.test.NFITest$NFITestRootNode
{
final java.lang.Object function;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final java.lang.Object strdup;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final java.lang.Object free;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
com.oracle.truffle.api.interop.InteropLibrary functionInterop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
com.oracle.truffle.api.interop.InteropLibrary strdupInterop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
com.oracle.truffle.api.interop.InteropLibrary freeInterop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode this
0: .line 85
aload 0 /* this */
invokespecial com.oracle.truffle.nfi.test.NFITest$NFITestRootNode.<init>:()V
1: .line 87
aload 0 /* this */
ldc "string_arg"
ldc "(string):sint32"
invokestatic com.oracle.truffle.nfi.test.StringNFITest.lookupAndBind:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.function:Ljava/lang/Object;
2: .line 88
aload 0 /* this */
ldc "strdup"
ldc "(string):string"
invokestatic com.oracle.truffle.nfi.test.StringNFITest.lookupAndBindDefault:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.strdup:Ljava/lang/Object;
3: .line 89
aload 0 /* this */
ldc "free"
ldc "(pointer):void"
invokestatic com.oracle.truffle.nfi.test.StringNFITest.lookupAndBindDefault:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
putfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.free:Ljava/lang/Object;
4: .line 91
aload 0 /* this */
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.function:Ljava/lang/Object;
invokestatic com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.getInterop:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.functionInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
5: .line 92
aload 0 /* this */
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.strdup:Ljava/lang/Object;
invokestatic com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.getInterop:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.strdupInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
6: .line 93
aload 0 /* this */
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.free:Ljava/lang/Object;
invokestatic com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.getInterop:(Ljava/lang/Object;)Lcom/oracle/truffle/api/interop/InteropLibrary;
putfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.freeInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
7: .line 85
return
end local 0 // com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/nfi/test/StringNFITest$NativeStringArgNode;
public java.lang.Object executeTest(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=2
start local 0 // com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 97
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.strdupInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.strdup:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1 /* frame */
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
iconst_0
aaload
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 2 /* nativeString */
start local 2 // java.lang.Object nativeString
1: .line 98
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.functionInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.function:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2 /* nativeString */
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3 /* ret */
start local 3 // java.lang.Object ret
2: .line 99
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.freeInterop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 0 /* this */
getfield com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode.free:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2 /* nativeString */
aastore
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
3: .line 100
aload 3 /* ret */
areturn
end local 3 // java.lang.Object ret
end local 2 // java.lang.Object nativeString
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/nfi/test/StringNFITest$NativeStringArgNode;
0 4 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 4 2 nativeString Ljava/lang/Object;
2 4 3 ret Ljava/lang/Object;
Exceptions:
throws com.oracle.truffle.api.interop.InteropException
MethodParameters:
Name Flags
frame
}
SourceFile: "StringNFITest.java"
NestHost: com.oracle.truffle.nfi.test.StringNFITest
InnerClasses:
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
protected abstract NFITestRootNode = com.oracle.truffle.nfi.test.NFITest$NFITestRootNode of com.oracle.truffle.nfi.test.NFITest
public NativeStringArgNode = com.oracle.truffle.nfi.test.StringNFITest$NativeStringArgNode of com.oracle.truffle.nfi.test.StringNFITest