On Fri, 16 Oct 2026 10:40:22 GMT, Jorn Vernee <[email protected]> wrote:

> Currently the javadoc of Linker has many examples that use the `JAVA_*` 
> layout constants.
> 
> It is preferred for users to use the canonical layouts the linker returns, 
> since they have a much more obvious mapping to native types, and are 
> guaranteed to work.
> 
> This patch tweaks the examples to be written in terms of canonical layouts 
> rather than the `JAVA_*` constants. It adds a missing column to the table of 
> example types that lists their canonical layout name (which doesn't match the 
> C type name for `void*`).
> 
> Since this is a doc clarification, no CSR is needed.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Nice cleanup!

src/java.base/share/classes/java/lang/foreign/Linker.java line 372:

> 370:  *     MemorySegment array = arena.allocateFrom(C_INT, 0, 9, 3, 4, 6, 5, 
> 1, 8, 2, 7);
> 371:  *     qsort.invokeExact(array, 10L, 4L, comparFunc);
> 372:  *     int[] sorted = array.toArray(ValueLayout.JAVA_INT); // [ 0, 1, 2, 
> 3, 4, 5, 6, 7, 8, 9 ]

This is a bit subtle -- but I think it's ok

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

Marked as reviewed by mcimadamore (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/33411#pullrequestreview-5547385473
PR Review Comment: https://git.openjdk.org/jdk/pull/33411#discussion_r4294352671

Reply via email to