[foreign-memaccess] [Rev 01] RFR: Add MemorySegment::fill

Paul Sandoz psandoz at openjdk.java.net
Wed May 13 15:46:21 UTC 2020


On Wed, 13 May 2020 15:43:59 GMT, Chris Hegarty <chegar at openjdk.org> wrote:

>> Hi,
>> 
>> As part of feedback on the Foreign Memory API (when experimenting with
>> its usage internally in the JDK), a small number of potential usability
>> enhancements could be made to the API. This is the second such.
>> 
>> This change proposes to add a new method:
>>   MemorySegment::fill
>> 
>> Which fills a value into the given memory segment. Fill can be useful to
>> initialize or reset the memory of a segment, similar(ish) to memset.
>> 
>> There are obviously different ways to provide such functionality, e.g.
>> accepting a fill value with a bit width greater than 8 bits, but on
>> balance this single method will likely satisfy the majority of simple
>> use-cases. Other more advanced initialization scenarios would likely be
>> served better from an interaction with the Vector API, or some such.
>
> Chris Hegarty has updated the pull request incrementally with one additional commit since the last revision:
> 
>   review comment: testFillWithNull -> testFillNull

Nice and simple, but i think there is an open  design question here.

Notice that the bulk `copy` operation resides on `MemoryAddress`.  Fill is a little like a copy, e.g. if expanded later
to fill one segment repeatedly with another (if the destination segment is smaller than the source then it's a
truncated copy).

I think we need to consider grouping bulk operations in the same place.

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

PR: https://git.openjdk.java.net/panama-foreign/pull/161


More information about the panama-dev mailing list