[foreign-memaccess] RFR: 8240874: Add finer-grained access control for memory segments

Maurizio Cimadamore mcimadamore at openjdk.java.net
Thu Mar 12 14:53:44 UTC 2020


On Thu, 12 Mar 2020 14:39:14 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

>> This patch adds a finer-grained access control for memory segments; instead of the ad-hoc `MemorySegment::asReadOnly`,
>> we now support a more complete `MemorySegment::withAccessModes`, where access modes is an int mask.
>> Supported access modes are `READ`, `WRITE`, `CLOSE` and `ACQUIRE`, which gives much more freedom to clients when it
>> comes to create restricted views (I've added a new section on that in the MemorySegment toplevel javadoc).
>> I also did some minor changes, mostly to get rid of confinement restrictions where such restrictions were not needed
>> (e.g. `MemorySegment::asSlice`).
>
> test/jdk/java/foreign/TestSegments.java line 244:
> 
>> 243:         int nActions = AccessActions.values().length;
>> 244:         Object[][] results = new Object[nActions * nActions][];
>> 245:         for (int accessModes = 0 ; accessModes < results.length ; accessModes++) {
> 
> I think this should be:
> Suggestion:
> 
>         Object[][] results = new Object[1 << nActions][];
> Since the number of combinations is 2^4. Though for 4 access modes 4 * 4 and 1 << 4 are both 16, it becomes a problem
> if we add or remove access modes.

whoops - good catch

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

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


More information about the panama-dev mailing list