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