This PR fixes an inexact var handle call that sneaked in as part of 
https://git.openjdk.org/jdk/pull/16224.

As some default methods were moved from `MemorySegment` to 
`AbstractMemorySegmentImpl`, the type of `this` has changed, and this made all 
the var handle calls in the memory segment accessors inexact.

To prevent this issue from occurring again, I've added a new JDK flag to create 
_exact_ segment view var handles, so that we can test that segment accessors 
work even when using the stricter behavior.

I've considered using a flag for _all_ var handles (even non-FFM ones), but 
gave up when I saw that there is some JDK code that needs to pass `null` to 
some var handles, in which case exact behavior is not possible (at least not 
without fixing the use site to cast the `null` to the right type). This might 
be pursued as a separate effort.

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

Commit messages:
 - Initial push

Changes: https://git.openjdk.org/jdk/pull/16451/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16451&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8319211
  Stats: 42 lines in 4 files changed: 5 ins; 0 del; 37 mod
  Patch: https://git.openjdk.org/jdk/pull/16451.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16451/head:pull/16451

PR: https://git.openjdk.org/jdk/pull/16451

Reply via email to