[foreign-memaccess+abi] RFR: 8292078: Thread-safety issues in AbstractLinker implementations [v2]

Jorn Vernee jvernee at openjdk.org
Tue Aug 9 13:01:37 UTC 2022


On Tue, 9 Aug 2022 12:58:00 GMT, Per Minborg <duke at openjdk.org> wrote:

>> Change to lazy static initializing for singletons and fix a bug in `LinuxAArch64VaList` that threw an `IndexOutOfBoundsException`.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Undo reformatting

Marked as reviewed by jvernee (Committer).

src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64Linker.java line 30:

> 28: import jdk.internal.foreign.abi.AbstractLinker;
> 29: import jdk.internal.foreign.abi.aarch64.CallArranger;
> 30: import jdk.internal.foreign.abi.aarch64.macos.MacOsAArch64Linker;

Spurious import?
Suggestion:

src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64Linker.java line 47:

> 45:     private static final class Holder {
> 46:         private static final LinuxAArch64Linker INSTANCE = new LinuxAArch64Linker();
> 47:     }

You could also make this a local class in `getInstance` (they now allow static fields).

src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/linux/LinuxAArch64VaList.java line 124:

> 122:         MemorySegment stack = stackPtr(segment); // size unknown
> 123:         MemorySegment gpRegsArea = MemorySegment.ofAddress(grTop(segment).address() - MAX_GP_OFFSET, MAX_GP_OFFSET, session);
> 124:         MemorySegment fpRegsArea = MemorySegment.ofAddress(vrTop(segment).address() - MAX_FP_OFFSET, MAX_FP_OFFSET, session);

Thanks for fixing!

src/java.base/share/classes/jdk/internal/foreign/abi/aarch64/macos/MacOsAArch64Linker.java line 30:

> 28: import jdk.internal.foreign.abi.AbstractLinker;
> 29: import jdk.internal.foreign.abi.aarch64.CallArranger;
> 30: import jdk.internal.foreign.abi.x64.windows.Windowsx64Linker;

Suggestion:

src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/SysVx64Linker.java line 29:

> 27: 
> 28: import jdk.internal.foreign.abi.AbstractLinker;
> 29: import jdk.internal.foreign.abi.x64.windows.Windowsx64Linker;

Suggestion:

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

PR: https://git.openjdk.org/panama-foreign/pull/702


More information about the panama-dev mailing list