RFR: 8264774: Implementation of Foreign Function and Memory API (Incubator) [v2]

Daniel Fuchs dfuchs at openjdk.java.net
Wed Apr 28 19:09:54 UTC 2021


On Wed, 28 Apr 2021 10:42:54 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> This PR contains the API and implementation changes for JEP-412 [1]. A more detailed description of such changes, to avoid repetitions during the review process, is included as a separate comment.
>> 
>> [1] - https://openjdk.java.net/jeps/412
>
> Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Address first batch of review comments

src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/LibraryLookup.java line 52:

> 50:  * <p>
> 51:  * For {@link #lookup(String) memory addresses} obtained from a library lookup object,
> 52:  * since {@link CLinker#downcallHandle(Addressable, MethodType, FunctionDescriptor) native method handles}

These should be `{@linkplain }` since the text of the link is plain text (and not code)

src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/LibraryLookup.java line 88:

> 86:      * @return the memory segment associated with the library symbol (if any).
> 87:      * @throws IllegalArgumentException if the address associated with the lookup symbol do not match the
> 88:      * {@link MemoryLayout#byteAlignment() alignment constraints} in {@code layout}.

Same remark here (`{@linkplain }`)

src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java line 43:

> 41:  * when performing memory dereference operations using a memory access var handle (see {@link MemoryHandles}).
> 42:  * <p>
> 43:  * A memory address is associated with a {@link ResourceScope resource scope}; the resource scope determines the

`{@linkplain }`

src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java line 46:

> 44:  * lifecycle of the memory address, and whether the address can be used from multiple threads. Memory addresses
> 45:  * obtained from {@link #ofLong(long) numeric values}, or from native code, are associated with the
> 46:  * {@link ResourceScope#globalScope() global resource scope}. Memory addresses obtained from segments

... and here to (`{@linkplain }`)

src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java line 102:

> 100:      * @param segment the segment relative to which this address offset should be computed
> 101:      * @throws IllegalArgumentException if {@code segment} is not compatible with this address; this can happen, for instance,
> 102:      * when {@code segment} models an heap memory region, while this address is a {@link #isNative() native} address.

`{@linkplain }`

src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java line 209:

> 207:     /**
> 208:      * The native memory address instance modelling the {@code NULL} address, associated
> 209:      * with the {@link ResourceScope#globalScope() global} resource scope.

`{@linkplain }` ?

-------------

PR: https://git.openjdk.java.net/jdk/pull/3699


More information about the nio-dev mailing list