Skip to content

Commit ed6c611

Browse files
committed
Fixed all the tests which lacked the ability to test this bug.
At the same time, I refactored the leaf classes to use the new APIs in Java 21 FFM, this should have been done before. Nonetheless, this eliminated a lot of unnecessary code.
1 parent 38fa425 commit ed6c611

File tree

10 files changed

+667
-744
lines changed

10 files changed

+667
-744
lines changed

src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java

Lines changed: 14 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -25,45 +25,21 @@
2525
import static java.lang.foreign.ValueLayout.JAVA_INT_UNALIGNED;
2626
import static java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
2727
import static java.lang.foreign.ValueLayout.JAVA_SHORT_UNALIGNED;
28-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.getCharArr;
29-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.getDoubleArr;
30-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.getFloatArr;
31-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.getIntArr;
32-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.getLongArr;
33-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.getShortArr;
34-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.putCharArr;
35-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.putDoubleArr;
36-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.putFloatArr;
37-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.putIntArr;
38-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.putLongArr;
39-
import static org.apache.datasketches.memory.internal.NativeWritableMemoryImpl.putShortArr;
4028

4129
import java.lang.foreign.Arena;
4230
import java.lang.foreign.MemorySegment;
4331

4432
import org.apache.datasketches.memory.MemoryRequestServer;
4533
import org.apache.datasketches.memory.WritableBuffer;
4634

47-
/*
48-
* Developer notes: The heavier methods, such as put/get arrays, duplicate, region, clear, fill,
49-
* compareTo, etc., use hard checks (check*() and incrementAndCheck*() methods), which execute at
50-
* runtime and throw exceptions if violated. The cost of the runtime checks are minor compared to
51-
* the rest of the work these methods are doing.
52-
*
53-
* <p>The light weight methods, such as put/get primitives, use asserts (assert*() and
54-
* incrementAndAssert*() methods), which only execute when asserts are enabled and JIT will remove
55-
* them entirely from production runtime code. The offset versions of the light weight methods will
56-
* simplify to a single unsafe call, which is further simplified by JIT to an intrinsic that is
57-
* often a single CPU instruction.
58-
*/
59-
6035
/**
6136
* Implementation of {@link WritableBuffer} for native endian byte order.
6237
* @author Roman Leventov
6338
* @author Lee Rhodes
6439
*/
6540
final class NativeWritableBufferImpl extends WritableBufferImpl {
6641

42+
//Pass-through ctor
6743
NativeWritableBufferImpl(
6844
final Arena arena,
6945
final MemorySegment seg,
@@ -88,7 +64,7 @@ public char getChar(final long offsetBytes) {
8864
@Override
8965
public void getCharArray(final char[] dstArray, final int dstOffsetChars, final int lengthChars) {
9066
final long pos = getPosition();
91-
getCharArr(seg, pos, dstArray, dstOffsetChars, lengthChars);
67+
MemorySegment.copy(seg, JAVA_CHAR_UNALIGNED, pos, dstArray, dstOffsetChars, lengthChars);
9268
setPosition(pos + (lengthChars << CHAR_SHIFT));
9369
}
9470

@@ -107,7 +83,7 @@ public double getDouble(final long offsetBytes) {
10783
@Override
10884
public void getDoubleArray(final double[] dstArray, final int dstOffsetDoubles, final int lengthDoubles) {
10985
final long pos = getPosition();
110-
getDoubleArr(seg, pos, dstArray, dstOffsetDoubles, lengthDoubles);
86+
MemorySegment.copy(seg, JAVA_DOUBLE_UNALIGNED, pos, dstArray, dstOffsetDoubles, lengthDoubles);
11187
setPosition(pos + (lengthDoubles << DOUBLE_SHIFT));
11288
}
11389

@@ -126,7 +102,7 @@ public float getFloat(final long offsetBytes) {
126102
@Override
127103
public void getFloatArray(final float[] dstArray, final int dstOffsetFloats, final int lengthFloats) {
128104
final long pos = getPosition();
129-
getFloatArr(seg, pos, dstArray, dstOffsetFloats, lengthFloats);
105+
MemorySegment.copy(seg, JAVA_FLOAT_UNALIGNED, pos, dstArray, dstOffsetFloats, lengthFloats);
130106
setPosition(pos + (lengthFloats << FLOAT_SHIFT));
131107
}
132108

@@ -145,7 +121,7 @@ public int getInt(final long offsetBytes) {
145121
@Override
146122
public void getIntArray(final int[] dstArray, final int dstOffsetInts, final int lengthInts) {
147123
final long pos = getPosition();
148-
getIntArr(seg, pos, dstArray, dstOffsetInts, lengthInts);
124+
MemorySegment.copy(seg, JAVA_INT_UNALIGNED, pos, dstArray, dstOffsetInts, lengthInts);
149125
setPosition(pos + (lengthInts << INT_SHIFT));
150126
}
151127

@@ -164,7 +140,7 @@ public long getLong(final long offsetBytes) {
164140
@Override
165141
public void getLongArray(final long[] dstArray, final int dstOffsetLongs, final int lengthLongs) {
166142
final long pos = getPosition();
167-
getLongArr(seg, pos, dstArray, dstOffsetLongs, lengthLongs);
143+
MemorySegment.copy(seg, JAVA_LONG_UNALIGNED, pos, dstArray, dstOffsetLongs, lengthLongs);
168144
setPosition(pos + (lengthLongs << LONG_SHIFT));
169145
}
170146

@@ -183,7 +159,7 @@ public short getShort(final long offsetBytes) {
183159
@Override
184160
public void getShortArray(final short[] dstArray, final int dstOffsetShorts, final int lengthShorts) {
185161
final long pos = getPosition();
186-
getShortArr(seg, pos, dstArray, dstOffsetShorts, lengthShorts);
162+
MemorySegment.copy(seg, JAVA_SHORT_UNALIGNED, pos, dstArray, dstOffsetShorts, lengthShorts);
187163
setPosition(pos + (lengthShorts << SHORT_SHIFT));
188164
}
189165

@@ -203,7 +179,7 @@ public void putChar(final long offsetBytes, final char value) {
203179
@Override
204180
public void putCharArray(final char[] srcArray, final int srcOffsetChars, final int lengthChars) {
205181
final long pos = getPosition();
206-
putCharArr(seg, pos, srcArray, srcOffsetChars, lengthChars);
182+
MemorySegment.copy(srcArray, srcOffsetChars, seg, JAVA_CHAR_UNALIGNED, pos, lengthChars);
207183
setPosition(pos + (lengthChars << CHAR_SHIFT));
208184
}
209185

@@ -222,7 +198,7 @@ public void putDouble(final long offsetBytes, final double value) {
222198
@Override
223199
public void putDoubleArray(final double[] srcArray, final int srcOffsetDoubles, final int lengthDoubles) {
224200
final long pos = getPosition();
225-
putDoubleArr(seg, pos, srcArray, srcOffsetDoubles, lengthDoubles);
201+
MemorySegment.copy(srcArray, srcOffsetDoubles, seg, JAVA_DOUBLE_UNALIGNED, pos, lengthDoubles);
226202
setPosition(pos + (lengthDoubles << DOUBLE_SHIFT));
227203
}
228204

@@ -241,7 +217,7 @@ public void putFloat(final long offsetBytes, final float value) {
241217
@Override
242218
public void putFloatArray(final float[] srcArray, final int srcOffsetFloats, final int lengthFloats) {
243219
final long pos = getPosition();
244-
putFloatArr(seg, pos, srcArray, srcOffsetFloats, lengthFloats);
220+
MemorySegment.copy(srcArray, srcOffsetFloats, seg, JAVA_FLOAT_UNALIGNED, pos, lengthFloats);
245221
setPosition(pos + (lengthFloats << FLOAT_SHIFT));
246222
}
247223

@@ -260,7 +236,7 @@ public void putInt(final long offsetBytes, final int value) {
260236
@Override
261237
public void putIntArray(final int[] srcArray, final int srcOffsetInts, final int lengthInts) {
262238
final long pos = getPosition();
263-
putIntArr(seg, pos, srcArray, srcOffsetInts, lengthInts);
239+
MemorySegment.copy(srcArray, srcOffsetInts, seg, JAVA_INT_UNALIGNED, pos, lengthInts);
264240
setPosition(pos + (lengthInts << INT_SHIFT));
265241
}
266242

@@ -279,7 +255,7 @@ public void putLong(final long offsetBytes, final long value) {
279255
@Override
280256
public void putLongArray(final long[] srcArray, final int srcOffsetLongs, final int lengthLongs) {
281257
final long pos = getPosition();
282-
putLongArr(seg, pos, srcArray, srcOffsetLongs, lengthLongs);
258+
MemorySegment.copy(srcArray, srcOffsetLongs, seg, JAVA_LONG_UNALIGNED, pos, lengthLongs);
283259
setPosition(pos + (lengthLongs << LONG_SHIFT));
284260
}
285261

@@ -298,7 +274,8 @@ public void putShort(final long offsetBytes, final short value) {
298274
@Override
299275
public void putShortArray(final short[] srcArray, final int srcOffsetShorts, final int lengthShorts) {
300276
final long pos = getPosition();
301-
putShortArr(seg, pos, srcArray, srcOffsetShorts, lengthShorts);
277+
MemorySegment.copy(srcArray, srcOffsetShorts, seg, JAVA_SHORT_UNALIGNED, pos, lengthShorts);
302278
setPosition(pos + (lengthShorts << SHORT_SHIFT));
303279
}
280+
304281
}

src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java

Lines changed: 13 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,11 @@
1919

2020
package org.apache.datasketches.memory.internal;
2121

22-
import static java.lang.foreign.ValueLayout.JAVA_CHAR;
2322
import static java.lang.foreign.ValueLayout.JAVA_CHAR_UNALIGNED;
24-
import static java.lang.foreign.ValueLayout.JAVA_DOUBLE;
2523
import static java.lang.foreign.ValueLayout.JAVA_DOUBLE_UNALIGNED;
26-
import static java.lang.foreign.ValueLayout.JAVA_FLOAT;
2724
import static java.lang.foreign.ValueLayout.JAVA_FLOAT_UNALIGNED;
28-
import static java.lang.foreign.ValueLayout.JAVA_INT;
2925
import static java.lang.foreign.ValueLayout.JAVA_INT_UNALIGNED;
30-
import static java.lang.foreign.ValueLayout.JAVA_LONG;
3126
import static java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
32-
import static java.lang.foreign.ValueLayout.JAVA_SHORT;
3327
import static java.lang.foreign.ValueLayout.JAVA_SHORT_UNALIGNED;
3428

3529
import java.lang.foreign.Arena;
@@ -55,22 +49,15 @@ final class NativeWritableMemoryImpl extends WritableMemoryImpl {
5549
super(seg, typeId, memReqSvr, arena);
5650
}
5751

58-
///PRIMITIVE getX() and getXArray()
52+
//PRIMITIVE getX() and getXArray()
5953
@Override
6054
public char getChar(final long offsetBytes) {
6155
return seg.get(ValueLayout.JAVA_CHAR_UNALIGNED, offsetBytes);
6256
}
6357

6458
@Override
6559
public void getCharArray(final long offsetBytes, final char[] dstArray, final int dstOffsetChars, final int lengthChars) {
66-
getCharArr(seg, offsetBytes, dstArray, dstOffsetChars, lengthChars);
67-
}
68-
69-
static void getCharArr(
70-
final MemorySegment seg, final long offsetBytes, final char[] dstArray, final int dstOffsetChars, final int lengthChars) {
71-
final MemorySegment dstSeg = MemorySegment.ofArray(dstArray);
72-
final long dstOffsetBytes = ((long) dstOffsetChars) << CHAR_SHIFT;
73-
MemorySegment.copy(seg, JAVA_CHAR_UNALIGNED, offsetBytes, dstSeg, JAVA_CHAR, dstOffsetBytes, lengthChars);
60+
MemorySegment.copy(seg, JAVA_CHAR_UNALIGNED, offsetBytes, dstArray, dstOffsetChars, lengthChars);
7461
}
7562

7663
@Override
@@ -80,14 +67,7 @@ public double getDouble(final long offsetBytes) {
8067

8168
@Override
8269
public void getDoubleArray(final long offsetBytes, final double[] dstArray, final int dstOffsetDoubles, final int lengthDoubles) {
83-
getDoubleArr(seg, offsetBytes, dstArray, dstOffsetDoubles, lengthDoubles);
84-
}
85-
86-
static void getDoubleArr(
87-
final MemorySegment seg, final long offsetBytes, final double[] dstArray, final int dstOffsetDoubles, final int lengthDoubles) {
88-
final MemorySegment dstSeg = MemorySegment.ofArray(dstArray);
89-
final long dstOffsetBytes = ((long) dstOffsetDoubles) << DOUBLE_SHIFT;
90-
MemorySegment.copy(seg, JAVA_DOUBLE_UNALIGNED, offsetBytes, dstSeg, JAVA_DOUBLE, dstOffsetBytes, lengthDoubles);
70+
MemorySegment.copy(seg, JAVA_DOUBLE_UNALIGNED, offsetBytes, dstArray, dstOffsetDoubles, lengthDoubles);
9171
}
9272

9373
@Override
@@ -97,14 +77,7 @@ public float getFloat(final long offsetBytes) {
9777

9878
@Override
9979
public void getFloatArray(final long offsetBytes, final float[] dstArray, final int dstOffsetFloats, final int lengthFloats) {
100-
getFloatArr(seg, offsetBytes, dstArray, dstOffsetFloats, lengthFloats);
101-
}
102-
103-
static void getFloatArr(
104-
final MemorySegment seg, final long offsetBytes, final float[] dstArray, final int dstOffsetFloats, final int lengthFloats) {
105-
final MemorySegment dstSeg = MemorySegment.ofArray(dstArray);
106-
final long dstOffsetBytes = ((long) dstOffsetFloats) << FLOAT_SHIFT;
107-
MemorySegment.copy(seg, JAVA_FLOAT_UNALIGNED, offsetBytes, dstSeg, JAVA_FLOAT, dstOffsetBytes, lengthFloats);
80+
MemorySegment.copy(seg, JAVA_FLOAT_UNALIGNED, offsetBytes, dstArray, dstOffsetFloats, lengthFloats);
10881
}
10982

11083
@Override
@@ -114,14 +87,7 @@ public int getInt(final long offsetBytes) {
11487

11588
@Override
11689
public void getIntArray(final long offsetBytes, final int[] dstArray, final int dstOffsetInts, final int lengthInts) {
117-
getIntArr(seg, offsetBytes, dstArray, dstOffsetInts, lengthInts);
118-
}
119-
120-
static void getIntArr(
121-
final MemorySegment seg, final long offsetBytes, final int[] dstArray, final int dstOffsetInts, final int lengthInts) {
122-
final MemorySegment dstSeg = MemorySegment.ofArray(dstArray);
123-
final long dstOffsetBytes = ((long) dstOffsetInts) << INT_SHIFT;
124-
MemorySegment.copy(seg, JAVA_INT_UNALIGNED, offsetBytes, dstSeg, JAVA_INT, dstOffsetBytes, lengthInts);
90+
MemorySegment.copy(seg, JAVA_INT_UNALIGNED, offsetBytes, dstArray, dstOffsetInts, lengthInts);
12591
}
12692

12793
@Override
@@ -131,14 +97,7 @@ public long getLong(final long offsetBytes) {
13197

13298
@Override
13399
public void getLongArray(final long offsetBytes, final long[] dstArray, final int dstOffsetLongs, final int lengthLongs) {
134-
getLongArr(seg, offsetBytes, dstArray, dstOffsetLongs, lengthLongs);
135-
}
136-
137-
static void getLongArr(
138-
final MemorySegment seg, final long offsetBytes, final long[] dstArray, final int dstOffsetLongs, final int lengthLongs) {
139-
final MemorySegment dstSeg = MemorySegment.ofArray(dstArray);
140-
final long dstOffsetBytes = ((long) dstOffsetLongs) << LONG_SHIFT;
141-
MemorySegment.copy(seg, JAVA_LONG_UNALIGNED, offsetBytes, dstSeg, JAVA_LONG, dstOffsetBytes, lengthLongs);
100+
MemorySegment.copy(seg, JAVA_LONG_UNALIGNED, offsetBytes, dstArray, dstOffsetLongs, lengthLongs);
142101
}
143102

144103
@Override
@@ -148,14 +107,7 @@ public short getShort(final long offsetBytes) {
148107

149108
@Override
150109
public void getShortArray(final long offsetBytes, final short[] dstArray, final int dstOffsetShorts, final int lengthShorts) {
151-
getShortArr(seg, offsetBytes, dstArray, dstOffsetShorts, lengthShorts);
152-
}
153-
154-
static void getShortArr(
155-
final MemorySegment seg, final long offsetBytes, final short[] dstArray, final int dstOffsetShorts, final int lengthShorts) {
156-
final MemorySegment dstSeg = MemorySegment.ofArray(dstArray);
157-
final long dstOffsetBytes = ((long) dstOffsetShorts) << SHORT_SHIFT;
158-
MemorySegment.copy(seg, JAVA_SHORT_UNALIGNED, offsetBytes, dstSeg, JAVA_SHORT, dstOffsetBytes, lengthShorts);
110+
MemorySegment.copy(seg, JAVA_SHORT_UNALIGNED, offsetBytes, dstArray, dstOffsetShorts, lengthShorts);
159111
}
160112

161113
//PRIMITIVE putX() and putXArray() implementations
@@ -166,14 +118,7 @@ public void putChar(final long offsetBytes, final char value) {
166118

167119
@Override
168120
public void putCharArray(final long offsetBytes, final char[] srcArray, final int srcOffsetChars, final int lengthChars) {
169-
putCharArr(seg, offsetBytes, srcArray, srcOffsetChars, lengthChars);
170-
}
171-
172-
static void putCharArr(
173-
final MemorySegment seg, final long offsetBytes, final char[] srcArray, final int srcOffsetChars, final int lengthChars) {
174-
final MemorySegment srcSeg = MemorySegment.ofArray(srcArray);
175-
final long srcOffsetBytes = ((long) srcOffsetChars) << CHAR_SHIFT;
176-
MemorySegment.copy(srcSeg, JAVA_CHAR, srcOffsetBytes, seg, JAVA_CHAR_UNALIGNED, offsetBytes, lengthChars);
121+
MemorySegment.copy(srcArray, srcOffsetChars, seg, JAVA_CHAR_UNALIGNED, offsetBytes, lengthChars);
177122
}
178123

179124
@Override
@@ -183,14 +128,7 @@ public void putDouble(final long offsetBytes, final double value) {
183128

184129
@Override
185130
public void putDoubleArray(final long offsetBytes, final double[] srcArray, final int srcOffsetDoubles, final int lengthDoubles) {
186-
putDoubleArr(seg, offsetBytes, srcArray, srcOffsetDoubles, lengthDoubles);
187-
}
188-
189-
static void putDoubleArr(
190-
final MemorySegment seg, final long offsetBytes, final double[] srcArray, final int srcOffsetDoubles, final int lengthDoubles) {
191-
final MemorySegment srcSeg = MemorySegment.ofArray(srcArray);
192-
final long srcOffsetBytes = ((long) srcOffsetDoubles) << DOUBLE_SHIFT;
193-
MemorySegment.copy(srcSeg, JAVA_DOUBLE, srcOffsetBytes, seg, JAVA_DOUBLE_UNALIGNED, offsetBytes, lengthDoubles);
131+
MemorySegment.copy(srcArray, srcOffsetDoubles, seg, JAVA_DOUBLE_UNALIGNED, offsetBytes, lengthDoubles);
194132
}
195133

196134
@Override
@@ -200,14 +138,7 @@ public void putFloat(final long offsetBytes, final float value) {
200138

201139
@Override
202140
public void putFloatArray(final long offsetBytes, final float[] srcArray, final int srcOffsetFloats, final int lengthFloats) {
203-
putFloatArr(seg, offsetBytes, srcArray, srcOffsetFloats, lengthFloats);
204-
}
205-
206-
static void putFloatArr(
207-
final MemorySegment seg, final long offsetBytes, final float[] srcArray, final int srcOffsetFloats, final int lengthFloats) {
208-
final MemorySegment srcSeg = MemorySegment.ofArray(srcArray);
209-
final long srcOffsetBytes = ((long) srcOffsetFloats) << FLOAT_SHIFT;
210-
MemorySegment.copy(srcSeg, JAVA_FLOAT, srcOffsetBytes, seg, JAVA_FLOAT_UNALIGNED, offsetBytes, lengthFloats);
141+
MemorySegment.copy(srcArray, srcOffsetFloats, seg, JAVA_FLOAT_UNALIGNED, offsetBytes, lengthFloats);
211142
}
212143

213144
@Override
@@ -217,14 +148,7 @@ public void putInt(final long offsetBytes, final int value) {
217148

218149
@Override
219150
public void putIntArray(final long offsetBytes, final int[] srcArray, final int srcOffsetInts, final int lengthInts) {
220-
putIntArr(seg, offsetBytes, srcArray, srcOffsetInts, lengthInts);
221-
}
222-
223-
static void putIntArr(
224-
final MemorySegment seg, final long offsetBytes, final int[] srcArray, final int srcOffsetInts, final int lengthInts) {
225-
final MemorySegment srcSeg = MemorySegment.ofArray(srcArray);
226-
final long srcOffsetBytes = ((long) srcOffsetInts) << INT_SHIFT;
227-
MemorySegment.copy(srcSeg, JAVA_INT, srcOffsetBytes, seg, JAVA_INT_UNALIGNED, offsetBytes, lengthInts);
151+
MemorySegment.copy(srcArray, srcOffsetInts, seg, JAVA_INT_UNALIGNED, offsetBytes, lengthInts);
228152
}
229153

230154
@Override
@@ -234,14 +158,7 @@ public void putLong(final long offsetBytes, final long value) {
234158

235159
@Override
236160
public void putLongArray(final long offsetBytes, final long[] srcArray, final int srcOffsetLongs, final int lengthLongs) {
237-
putLongArr(seg, offsetBytes, srcArray, srcOffsetLongs, lengthLongs);
238-
}
239-
240-
static void putLongArr(
241-
final MemorySegment seg, final long offsetBytes, final long[] srcArray, final int srcOffsetLongs, final int lengthLongs) {
242-
final MemorySegment srcSeg = MemorySegment.ofArray(srcArray);
243-
final long srcOffsetBytes = ((long) srcOffsetLongs) << LONG_SHIFT;
244-
MemorySegment.copy(srcSeg, JAVA_LONG, srcOffsetBytes, seg, JAVA_LONG_UNALIGNED, offsetBytes, lengthLongs);
161+
MemorySegment.copy(srcArray, srcOffsetLongs, seg, JAVA_LONG_UNALIGNED, offsetBytes, lengthLongs);
245162
}
246163

247164
@Override
@@ -251,13 +168,7 @@ public void putShort(final long offsetBytes, final short value) {
251168

252169
@Override
253170
public void putShortArray(final long offsetBytes, final short[] srcArray, final int srcOffsetShorts, final int lengthShorts) {
254-
putShortArr(seg, offsetBytes, srcArray, srcOffsetShorts, lengthShorts);
171+
MemorySegment.copy(srcArray, srcOffsetShorts, seg, JAVA_SHORT_UNALIGNED, offsetBytes, lengthShorts);
255172
}
256173

257-
static void putShortArr(
258-
final MemorySegment seg, final long offsetBytes, final short[] srcArray, final int srcOffsetShorts, final int lengthShorts) {
259-
final MemorySegment srcSeg = MemorySegment.ofArray(srcArray);
260-
final long srcOffsetBytes = ((long) srcOffsetShorts) << SHORT_SHIFT;
261-
MemorySegment.copy(srcSeg, JAVA_SHORT, srcOffsetBytes, seg, JAVA_SHORT_UNALIGNED, offsetBytes, lengthShorts);
262-
}
263174
}

0 commit comments

Comments
 (0)