Javadoc for Package java.lang.foreign

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Thu Jun 2 17:55:07 UTC 2022


Good catch, seems like something was lost in there. You need:

linker.defaultLookup().lookup("strlen").get()

Maurizio

On 02/06/2022 18:41, Andrew Haley wrote:
> Contains this:
>
> var linker = Linker.nativeLinker();
> MethodHandle strlen = linker.downcallHandle(
>     linker.lookup("strlen").get(),
>     FunctionDescriptor.of(ValueLayout.JAVA_LONG, ValueLayout.ADDRESS)
> );
>
> try (var session = MemorySession.openConfined()) {
>     var cString = MemorySegment.allocateNative(5 + 1, session);
>     cString.setUtf8String("Hello");
>     long len = (long)strlen.invoke(cString); // 5
> }
>
> I can't get it to work:
>
> PanamaExample.java:9: error: cannot find symbol
>             (linker.lookup("strlen").get(),
>                    ^
>   symbol:   method lookup(String)
>   location: variable linker of type Linker
>
> Is this an old version of the API?
>


More information about the panama-dev mailing list