Javadoc for Package java.lang.foreign
Andrew Haley
aph-open at littlepinkcloud.com
Thu Jun 2 18:27:49 UTC 2022
On 6/2/22 18:55, Maurizio Cimadamore wrote:
> Good catch, seems like something was lost in there. You need:
>
> linker.defaultLookup().lookup("strlen").get()
That's not all: setUtf8String wants an offset.
This version runs:
long doit() throws Throwable {
var linker = Linker.nativeLinker();
MethodHandle strlen = linker.downcallHandle(
linker.defaultLookup().lookup("strlen").get(),
FunctionDescriptor.of(ValueLayout.JAVA_LONG, ValueLayout.ADDRESS));
try (var session = MemorySession.openConfined()) {
var cString = MemorySegment.allocateNative(5 + 1, session);
cString.setUtf8String(0, "Hello");
long len = (long)strlen.invoke(cString); // 5
return len;
}
}
--
Andrew Haley (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the panama-dev
mailing list