RFR: 8304265: Implementation of Foreign Function and Memory API (Third Preview) [v5]

Andrey Turbanov aturbanov at openjdk.org
Wed Mar 22 09:18:50 UTC 2023


On Tue, 21 Mar 2023 09:02:29 GMT, Per Minborg <pminborg at openjdk.org> wrote:

>> API changes for the FFM API (third preview)
>> 
>> Specdiff:
>> https://cr.openjdk.org/~pminborg/panama/21/v1/specdiff/overview-summary.html
>> 
>> Javadoc:
>> https://cr.openjdk.org/~pminborg/panama/21/v1/javadoc/java.base/module-summary.html
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add example for Option::captureStateLayout

src/java.base/share/classes/java/lang/foreign/Arena.java line 224:

> 222:     static Arena global() {
> 223:         class Holder {
> 224:             final static Arena GLOBAL = MemorySessionImpl.GLOBAL.asArena();

Nit: use blessed modifiers order
Suggestion:

            static final Arena GLOBAL = MemorySessionImpl.GLOBAL.asArena();

src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/windows/WindowsAArch64Linker.java line 58:

> 56:     @Override
> 57:     protected UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescriptor function, LinkerOptions options) {
> 58:         return  CallArranger.WINDOWS.arrangeUpcall(targetType, function, options);

Suggestion:

        return CallArranger.WINDOWS.arrangeUpcall(targetType, function, options);

src/java.base/share/classes/jdk/internal/foreign/abi/fallback/LibFallback.java line 159:

> 157:      */
> 158:     static void getStructOffsets(MemorySegment structType, MemorySegment offsetsOut, FFIABI abi)
> 159:             throws IllegalStateException  {

Suggestion:

            throws IllegalStateException {

test/jdk/java/foreign/trivial/TestTrivial.java line 74:

> 72:         VarHandle vhX = bigLayout.varHandle(MemoryLayout.PathElement.groupElement("x"));
> 73:         VarHandle vhY = bigLayout.varHandle(MemoryLayout.PathElement.groupElement("y"));
> 74:         try (Arena arena  = Arena.ofConfined()) {

nit:
Suggestion:

        try (Arena arena = Arena.ofConfined()) {

test/jdk/java/foreign/trivial/TestTrivial.java line 89:

> 87:         StructLayout capturedStateLayout = Linker.Option.captureStateLayout();
> 88:         VarHandle errnoHandle = capturedStateLayout.varHandle(MemoryLayout.PathElement.groupElement("errno"));
> 89:         try (Arena arena  = Arena.ofConfined()) {

nit
Suggestion:

        try (Arena arena = Arena.ofConfined()) {

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13079#discussion_r1144450371
PR Review Comment: https://git.openjdk.org/jdk/pull/13079#discussion_r1144453152
PR Review Comment: https://git.openjdk.org/jdk/pull/13079#discussion_r1144452221
PR Review Comment: https://git.openjdk.org/jdk/pull/13079#discussion_r1144451413
PR Review Comment: https://git.openjdk.org/jdk/pull/13079#discussion_r1144451634



More information about the build-dev mailing list