Slide 45
Slide 45 text
Copyright © 2020, Oracle and/or its affiliates. All rights reserved.
Working with segments
45
An example
VarHandle intHandle = MemoryHandles.varHandle(int.class, ByteOrder.nativeOrder());
VarHandle xHandle = MemoryHandles.withStride(MemoryHandles.withOffset(intHandle, 0), 8);
VarHandle yHandle = MemoryHandles.withStride(MemoryHandles.withOffset(intHandle, 4), 8);
try (MemorySegment points = MemorySegment.allocateNative(4 * 2 * 5)) {
MemoryAddress base = points.baseAddress();
for (long i = 0 ; i < 5 ; i++) {
xHandle.set(base, i, (int)i);
yHandle.set(base, i, (int)i);
}
}
0 1 2 3 4
xHandle(basepoints
, 0)
xHandle(basepoints
, 1)
xHandle(basepoints
, 2) xHandle(basepoints
, 4)
xHandle(basepoints
, 3)
segmentpoints