[foreign-preview] RFR: 8280460: MemorySegment::allocateNative should be tolerant of zero-sized allocation requests
Maurizio Cimadamore
mcimadamore at openjdk.java.net
Tue Feb 22 13:11:27 UTC 2022
This patch addresses the issues discussed here:
https://mail.openjdk.java.net/pipermail/panama-dev/2022-January/016071.html
And makes `MemorySegment::allocateNative` tolerand of zero-sized allocation requests. After evaluating a number of alternatives, I have decided to do what `ByteBuffer` also does, that is, always compute the size of the allocation as `max(size, 1L)`.
This means that we always perform some allocation - which works better with alignment constraints (e.g. the address you get back is aligned as per request; this is a corner case, but makes the API more consistent).
I've tweaked the javadoc to reflect that (and also added some javadoc to `SegmentAllocator` as well), and added a test for various kinds of native segments, created both safely and unsafely.
-------------
Commit messages:
- Initial push
Changes: https://git.openjdk.java.net/panama-foreign/pull/650/files
Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=650&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8280460
Stats: 37 lines in 6 files changed: 27 ins; 1 del; 9 mod
Patch: https://git.openjdk.java.net/panama-foreign/pull/650.diff
Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/650/head:pull/650
PR: https://git.openjdk.java.net/panama-foreign/pull/650
More information about the panama-dev
mailing list