[foreign-memaccess] RFR: Memory access implementation rewrite - post cleanup

Maurizio Cimadamore mcimadamore at openjdk.java.net
Wed Apr 15 13:58:08 UTC 2020


On Wed, 15 Apr 2020 13:46:16 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

> * Fix access modes not preserved in AbstractMemorySegmentImpl.ofBuffer
> * Add check to ensure that Foreign::withSize and Foreign::asMallocSegment are called with unchecked address

test/jdk/java/foreign/TestByteBuffer.java line 624:

> 623:                     { channel.map(FileChannel.MapMode.READ_WRITE, 0L, 256).asReadOnlyBuffer(),
> 624:                             nativeTest /* this seems to be an existing bug in the BB implementation */ }
> 625:             };

Note: this test uncovered an issue with mapped buffers: any projections of a mapped buffer (slices, read only) will
create a direct buffer which will have lost the original file descriptor. As such, the behavior of the projection will
not be one of a mapped buffer (e.g. calling force() will do nothing). As such, our implementation will simply return a
native segment in such cases. I'll discuss this issue with somebody from core-libs.

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

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


More information about the panama-dev mailing list