On Tue, 5 Jul 2022 11:13:15 GMT, Maurizio Cimadamore <[email protected]>
wrote:
>> This patch changes all VaList implementations to throw
>> `NoSuchElementException` when out of bounds reads occur on a VaList that is
>> created using the Java builder API. The docs are updated accordingly.
>>
>> For VaLists that are created from native addresses, we don't know their
>> bounds, so we can not throw exceptions in that case.
>>
>> Testing: `jdk_foreign` test suite on all platforms that implement VaList.
>
> src/java.base/share/classes/java/lang/foreign/VaList.java line 99:
>
>> 97: * @throws WrongThreadException if this method is called from a
>> thread other than the thread owning
>> 98: * the {@linkplain #session() session} associated with this variable
>> argument list.
>> 99: * @throws NoSuchElementException if an out-of-bounds read is
>> detected.
>
> I'd insert a link to the safety section, where the link text is
> "out-of-bounds".
Good idea, I'll add links
> src/java.base/share/classes/jdk/internal/foreign/abi/x64/sysv/SysVVaList.java
> line 291:
>
>> 289: }
>> 290:
>> 291: private void checkRegAreaElement(MemoryLayout layout, TypeClass
>> typeClass) {
>
> should this be `checkRegSaveAreaElement` ?
Okay, I can rename it.
-------------
PR: https://git.openjdk.org/jdk19/pull/91