RFR: 8343188: Investigate ways to simplify MemorySegment::ofBuffer
    Jorn Vernee 
    jvernee at openjdk.org
       
    Wed Oct 30 18:30:07 UTC 2024
    
    
  
On Tue, 29 Oct 2024 14:51:33 GMT, Per Minborg <pminborg at openjdk.org> wrote:
> This PR proposes to improve `MemorySegment::ofBuffer` making it more amenable to inlining and generally improving performance.
> 
> Testing successfully on tier1-3
src/java.base/share/classes/java/nio/Buffer.java line 33:
> 31: import jdk.internal.access.foreign.UnmapperProxy;
> 32: import jdk.internal.foreign.AbstractMemorySegmentImpl;
> 33: import jdk.internal.foreign.HeapMemorySegmentImpl;
Spurious import?
src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template line 545:
> 543:                                                  boolean readOnly,
> 544:                                                  MemorySessionImpl bufferScope) {
> 545:         return SegmentFactories.arrayOf$Type$Segment(base, offset, length, readOnly, bufferScope);
For direct buffers I don't think we can get here since the base should be `null`? I think this should be changed to throw UOE (if we ever do end up here, we don't want to return a heap segment with a `null` base).
src/java.base/share/classes/jdk/internal/foreign/HeapMemorySegmentImpl.java line 49:
> 47:  * such as the elimination of store barriers in methods like {@link HeapMemorySegmentImpl#dup(long, long, boolean, MemorySessionImpl)}.
> 48:  */
> 49: public abstract sealed class HeapMemorySegmentImpl extends AbstractMemorySegmentImpl {
This change doesn't seem to be needed.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21764#discussion_r1823178554
PR Review Comment: https://git.openjdk.org/jdk/pull/21764#discussion_r1823180881
PR Review Comment: https://git.openjdk.org/jdk/pull/21764#discussion_r1823179015
    
    
More information about the core-libs-dev
mailing list