Return type presence must match error on handle creation
Ty Young
youngty1997 at gmail.com
Fri Feb 21 04:32:54 UTC 2020
Hi,
I'm trying to call the XNVCTRLQueryExtension function from NVXCtrl API
but am getting an error[1].
The function is defined like so:
Bool XNVCTRLQueryExtension (
Display *dpy,
int *event_basep,
int *error_basep
);
where Bool is defined as an int in Xlib_h(Display is an X server display
pointer).
Java binding code is:
this.address = NVCtrl_h.LIBRARY_LOOKUP.lookup("XNVCTRLQueryExtension");
this.descriptor = FunctionDescriptor.of(MemoryLayouts.C_INT, false,
MemoryLayouts.C_POINTER, MemoryLayouts.C_POINTER, MemoryLayouts.C_POINTER);
this.type = MethodType.methodType(int.class, MemoryAddress.class,
MemoryAddress.class, MemoryAddress.class);
However this gives the following error:
Caused by: java.lang.IllegalArgumentException: return type presence must
match!
at
jdk.incubator.foreign/jdk.internal.foreign.abi.SharedUtils.checkFunctionTypes(SharedUtils.java:185)
at
jdk.incubator.foreign/jdk.internal.foreign.abi.x64.sysv.CallArranger.getBindings(CallArranger.java:95)
at
jdk.incubator.foreign/jdk.internal.foreign.abi.x64.sysv.CallArranger.arrangeDowncall(CallArranger.java:129)
at
jdk.incubator.foreign/jdk.internal.foreign.abi.x64.sysv.SysVx64ABI.downcallHandle(SysVx64ABI.java:72)
at
org.goliath.bindings.nvxctrl.functions.XNVCTRLQueryExtension.<init>(XNVCTRLQueryExtension.java:28)
at
org.goliath.bindings.nvxctrl.main.NVCtrl_h.<clinit>(NVCtrl_h.java:24)
What's going on?
[1]
https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrlLib.h
More information about the panama-dev
mailing list