1919
2020package org .apache .datasketches .memory .internal ;
2121
22- import static java .lang .foreign .ValueLayout .JAVA_CHAR ;
2322import static java .lang .foreign .ValueLayout .JAVA_CHAR_UNALIGNED ;
24- import static java .lang .foreign .ValueLayout .JAVA_DOUBLE ;
2523import static java .lang .foreign .ValueLayout .JAVA_DOUBLE_UNALIGNED ;
26- import static java .lang .foreign .ValueLayout .JAVA_FLOAT ;
2724import static java .lang .foreign .ValueLayout .JAVA_FLOAT_UNALIGNED ;
28- import static java .lang .foreign .ValueLayout .JAVA_INT ;
2925import static java .lang .foreign .ValueLayout .JAVA_INT_UNALIGNED ;
30- import static java .lang .foreign .ValueLayout .JAVA_LONG ;
3126import static java .lang .foreign .ValueLayout .JAVA_LONG_UNALIGNED ;
32- import static java .lang .foreign .ValueLayout .JAVA_SHORT ;
3327import static java .lang .foreign .ValueLayout .JAVA_SHORT_UNALIGNED ;
3428
3529import 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