[foreign-memaccess] RFR: 8252504: Add a method to MemoryLayout which returns a offset-computing method handle
Chris Hegarty
chegar at openjdk.java.net
Thu Nov 19 18:51:08 UTC 2020
On Thu, 19 Nov 2020 15:53:44 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> This PR adds two new methods: `bitOffsetHandle` and `byteOffsetHandle` to `MemoryLayout`, that can be used to create method handles that can compute the effective offset of a layout element given a set of additional `long` indexes.
>
> I also cleaned up a leftover in the javadoc of bitOffset and byteOffset where an API note was stating that `sequenceElement()` layout path elements would be interpreted as `sequenceElement(0)`, but they were actually being rejected outright (as they should).
>
> I also added some tests to cover the corner case where an UnsupportedOperationException was being thrown. (some of the churn in the tests is from introducing static imports. I hope it's not too noisy).
src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 361:
> 359: * <p>This is like {@link #bitOffset(PathElement...)}, except that free dimensions
> 360: * ({@link PathElement#sequenceElement()}) are accepted, and translated into {@code long} parameters
> 361: * of the returned method handle, to be specified later.
"specified later" -> "specified to the invocation of the method handle"
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/396
More information about the panama-dev
mailing list