[foreign-memaccess] RFR: 8248487: Add static helpers to access segments
Maurizio Cimadamore
mcimadamore at openjdk.java.net
Mon Jun 29 20:45:26 UTC 2020
On Mon, 29 Jun 2020 16:40:19 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:
> This patch addresses some usability issues in the foreign memory API. First, it adds several static accessors for all
> carrier types in MemoryLayouts (I'm thorn whether to add this in MemoryLayouts or MemoryHandles, suggestions welcome).
> These accessors provide an access API that is similar to unsafe - all accessors expect a base address plus a byte
> offset. In most cases the accessors can be used and direct VH usage can be dropped, which might make approaching this
> API a bit easier. Secondly, I've added a bunch of helpers to map a segment into _any_ array (as opposed to just
> `byte[]`). This makes the API more symmetric, given that, after all we _were_ able to create a segment from _any_ array
> (not just `byte[]`).
Ideally, we could use varargs notation here, but one problem with that is that, if we ever add ability to allocate
"empty" array - as in:
MemoryAddress allocateArray(MemoryLayout elemLayout, long size)
Then we risk ambiguities.
If we are ok to never add a method like the one above - after all, one can allocate an empty array as follows:
allocateArray(MemoryLayout.ofSequence(size, elemLayout))
then this is less of a problem.
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/221
More information about the panama-dev
mailing list