[foreign-jextract] RFR: 8247678: StdLibTest fails to create an empty VaList on Windows
Jorn Vernee
jvernee at openjdk.java.net
Tue Jun 16 15:14:35 UTC 2020
Hi,
This patch addresses a test failure in StdLibTest, caused by trying to allocate an empty VaList in the Windows
implementation.
(After some discussion with Maurizio) this is fixed by special casing empty va lists in the implementation.
VaList.Builder.build() now returns a special empty va list constant when the VaList is empty. There's also an added
VaList.empty() method, to directly create an empty VaList.
To implement this I removed the getSegment methods in the VaList implementation classes, and instead rely on
VaList::address for unboxing a VaList. This works better with the spacial case empty VaList. Along with that I moved
some of the shared code for handling VaList in the linkers to SharedUtils.
I added tests for the empty() API to verify that the returned VaList is non-closeable, and also updated StdLibTest to
close the VaLists it creates (it wasn't doing this yet).
Thanks,
Jorn
-------------
Commit messages:
- - Add VaList.empty
- Work around test failures where the test tries to create an empty VaList, by allocating a 1 byte dummy segment in that case.
Changes: https://git.openjdk.java.net/panama-foreign/pull/208/files
Webrev: https://webrevs.openjdk.java.net/panama-foreign/208/webrev.00
Issue: https://bugs.openjdk.java.net/browse/JDK-8247678
Stats: 281 lines in 8 files changed: 183 ins; 76 del; 22 mod
Patch: https://git.openjdk.java.net/panama-foreign/pull/208.diff
Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/208/head:pull/208
PR: https://git.openjdk.java.net/panama-foreign/pull/208
More information about the panama-dev
mailing list