Javadoc for Package java.lang.foreign
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Jun 2 20:41:58 UTC 2022
Thanks Andrew
https://github.com/openjdk/jdk/pull/9005
Maurizio
On 02/06/2022 19:27, Andrew Haley wrote:
> 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;
> }
> }
>
>
More information about the panama-dev
mailing list