On Tue, 20 Jun 2023 14:21:26 GMT, Jorn Vernee <jver...@openjdk.org> wrote:

> Improve the specification of `Linker.Option.firstVariadicArg`, by specifying 
> more clearly which index values are valid.

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

> 648:          *          function descriptor associated with a downcall 
> linkage request}
> 649:          * <p>
> 650:          * The {@code index} value must be greater than zero, and less 
> than or equal to the number of argument layouts

Why > 0 and not >= 0? If the list of argument layout is empty, wouldn't the 
first vararg be in position 0? E.g. a call to a function `m(...)` with _no_ 
actual arguments?

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

> 650:          * The {@code index} value must be greater than zero, and less 
> than or equal to the number of argument layouts
> 651:          * of the function descriptor that is used in the same linkage 
> request as this option. When the {@code index} is
> 652:          * equal to the number of argument layouts in the descriptor, it 
> indicates a variadic function to which zero

This sentence is not clear. If index == num layouts then it means *all* 
arguments are variadic?

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

> 657:          * against which the index is validated is available.
> 658:          *
> 659:          * @param index the index of the first variadic argument layout 
> in the function descriptor associated

IMHO this description is still confusing because it speaks about an index into 
the function descriptor argument layouts - which this thing is not.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14565#discussion_r1235980081
PR Review Comment: https://git.openjdk.org/jdk/pull/14565#discussion_r1235981064
PR Review Comment: https://git.openjdk.org/jdk/pull/14565#discussion_r1235981781

Reply via email to