This is an automated email from the ASF dual-hosted git repository. leerho pushed a commit to branch 6.0.X_cherrypick_tgt in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit 38fa425492c55aa446eaa9711acab54765b6fc20 Author: Lee Rhodes <[email protected]> AuthorDate: Thu Jan 30 12:19:25 2025 -0800 Merge pull request #253 from pawel-wiejacha/fix_set_position fixed operator precedence bug in setPosition() calls --- .../memory/internal/NativeWritableBufferImpl.java | 24 +++++++++++----------- .../internal/NonNativeWritableBufferImpl.java | 24 +++++++++++----------- .../internal/NativeWritableBufferImplTest.java | 16 +++++++++++++++ .../internal/NonNativeWritableBufferImplTest.java | 15 ++++++++++++++ 4 files changed, 55 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java index 588f0d6..31b2f64 100644 --- a/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java +++ b/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java @@ -89,7 +89,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void getCharArray(final char[] dstArray, final int dstOffsetChars, final int lengthChars) { final long pos = getPosition(); getCharArr(seg, pos, dstArray, dstOffsetChars, lengthChars); - setPosition(pos + (lengthChars) << CHAR_SHIFT); + setPosition(pos + (lengthChars << CHAR_SHIFT)); } @Override @@ -108,7 +108,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void getDoubleArray(final double[] dstArray, final int dstOffsetDoubles, final int lengthDoubles) { final long pos = getPosition(); getDoubleArr(seg, pos, dstArray, dstOffsetDoubles, lengthDoubles); - setPosition(pos + (lengthDoubles) << DOUBLE_SHIFT); + setPosition(pos + (lengthDoubles << DOUBLE_SHIFT)); } @Override @@ -127,7 +127,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void getFloatArray(final float[] dstArray, final int dstOffsetFloats, final int lengthFloats) { final long pos = getPosition(); getFloatArr(seg, pos, dstArray, dstOffsetFloats, lengthFloats); - setPosition(pos + (lengthFloats) << FLOAT_SHIFT); + setPosition(pos + (lengthFloats << FLOAT_SHIFT)); } @Override @@ -146,7 +146,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void getIntArray(final int[] dstArray, final int dstOffsetInts, final int lengthInts) { final long pos = getPosition(); getIntArr(seg, pos, dstArray, dstOffsetInts, lengthInts); - setPosition(pos + (lengthInts) << INT_SHIFT); + setPosition(pos + (lengthInts << INT_SHIFT)); } @Override @@ -165,7 +165,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void getLongArray(final long[] dstArray, final int dstOffsetLongs, final int lengthLongs) { final long pos = getPosition(); getLongArr(seg, pos, dstArray, dstOffsetLongs, lengthLongs); - setPosition(pos + (lengthLongs) << LONG_SHIFT); + setPosition(pos + (lengthLongs << LONG_SHIFT)); } @Override @@ -184,7 +184,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void getShortArray(final short[] dstArray, final int dstOffsetShorts, final int lengthShorts) { final long pos = getPosition(); getShortArr(seg, pos, dstArray, dstOffsetShorts, lengthShorts); - setPosition(pos + (lengthShorts) << SHORT_SHIFT); + setPosition(pos + (lengthShorts << SHORT_SHIFT)); } //PRIMITIVE putX() and putXArray() @@ -204,7 +204,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void putCharArray(final char[] srcArray, final int srcOffsetChars, final int lengthChars) { final long pos = getPosition(); putCharArr(seg, pos, srcArray, srcOffsetChars, lengthChars); - setPosition(pos + (lengthChars) << CHAR_SHIFT); + setPosition(pos + (lengthChars << CHAR_SHIFT)); } @Override @@ -223,7 +223,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void putDoubleArray(final double[] srcArray, final int srcOffsetDoubles, final int lengthDoubles) { final long pos = getPosition(); putDoubleArr(seg, pos, srcArray, srcOffsetDoubles, lengthDoubles); - setPosition(pos + (lengthDoubles) << DOUBLE_SHIFT); + setPosition(pos + (lengthDoubles << DOUBLE_SHIFT)); } @Override @@ -242,7 +242,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void putFloatArray(final float[] srcArray, final int srcOffsetFloats, final int lengthFloats) { final long pos = getPosition(); putFloatArr(seg, pos, srcArray, srcOffsetFloats, lengthFloats); - setPosition(pos + (lengthFloats) << FLOAT_SHIFT); + setPosition(pos + (lengthFloats << FLOAT_SHIFT)); } @Override @@ -261,7 +261,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void putIntArray(final int[] srcArray, final int srcOffsetInts, final int lengthInts) { final long pos = getPosition(); putIntArr(seg, pos, srcArray, srcOffsetInts, lengthInts); - setPosition(pos + (lengthInts) << INT_SHIFT); + setPosition(pos + (lengthInts << INT_SHIFT)); } @Override @@ -280,7 +280,7 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void putLongArray(final long[] srcArray, final int srcOffsetLongs, final int lengthLongs) { final long pos = getPosition(); putLongArr(seg, pos, srcArray, srcOffsetLongs, lengthLongs); - setPosition(pos + (lengthLongs) << LONG_SHIFT); + setPosition(pos + (lengthLongs << LONG_SHIFT)); } @Override @@ -299,6 +299,6 @@ final class NativeWritableBufferImpl extends WritableBufferImpl { public void putShortArray(final short[] srcArray, final int srcOffsetShorts, final int lengthShorts) { final long pos = getPosition(); putShortArr(seg, pos, srcArray, srcOffsetShorts, lengthShorts); - setPosition(pos + (lengthShorts) << SHORT_SHIFT); + setPosition(pos + (lengthShorts << SHORT_SHIFT)); } } diff --git a/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java index 84cf349..29c5b1c 100644 --- a/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java +++ b/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java @@ -90,7 +90,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void getCharArray(final char[] dstArray, final int dstOffsetChars, final int lengthChars) { final long pos = getPosition(); getCharArr(seg, pos, dstArray, dstOffsetChars, lengthChars); - setPosition(pos + (lengthChars) << CHAR_SHIFT); + setPosition(pos + (lengthChars << CHAR_SHIFT)); } @Override @@ -109,7 +109,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void getDoubleArray(final double[] dstArray, final int dstOffsetDoubles, final int lengthDoubles) { final long pos = getPosition(); getDoubleArr(seg, pos, dstArray, dstOffsetDoubles, lengthDoubles); - setPosition(pos + (lengthDoubles) << DOUBLE_SHIFT); + setPosition(pos + (lengthDoubles << DOUBLE_SHIFT)); } @Override @@ -128,7 +128,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void getFloatArray(final float[] dstArray, final int dstOffsetFloats, final int lengthFloats) { final long pos = getPosition(); getFloatArr(seg, pos, dstArray, dstOffsetFloats, lengthFloats); - setPosition(pos + (lengthFloats) << FLOAT_SHIFT); + setPosition(pos + (lengthFloats << FLOAT_SHIFT)); } @Override @@ -147,7 +147,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void getIntArray(final int[] dstArray, final int dstOffsetInts, final int lengthInts) { final long pos = getPosition(); getIntArr(seg, pos, dstArray, dstOffsetInts, lengthInts); - setPosition(pos + (lengthInts) << INT_SHIFT); + setPosition(pos + (lengthInts << INT_SHIFT)); } @Override @@ -166,7 +166,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void getLongArray(final long[] dstArray, final int dstOffsetLongs, final int lengthLongs) { final long pos = getPosition(); getLongArr(seg, pos, dstArray, dstOffsetLongs, lengthLongs); - setPosition(pos + (lengthLongs) << LONG_SHIFT); + setPosition(pos + (lengthLongs << LONG_SHIFT)); } @Override @@ -185,7 +185,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void getShortArray(final short[] dstArray, final int dstOffsetShorts, final int lengthShorts) { final long pos = getPosition(); getShortArr(seg, pos, dstArray, dstOffsetShorts, lengthShorts); - setPosition(pos + (lengthShorts) << SHORT_SHIFT); + setPosition(pos + (lengthShorts << SHORT_SHIFT)); } //PRIMITIVE putX() and putXArray() @@ -205,7 +205,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void putCharArray(final char[] srcArray, final int srcOffsetChars, final int lengthChars) { final long pos = getPosition(); putCharArr(seg, pos, srcArray, srcOffsetChars, lengthChars); - setPosition(pos + (lengthChars) << CHAR_SHIFT); + setPosition(pos + (lengthChars << CHAR_SHIFT)); } @Override @@ -224,7 +224,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void putDoubleArray(final double[] srcArray, final int srcOffsetDoubles, final int lengthDoubles) { final long pos = getPosition(); putDoubleArr(seg, pos, srcArray, srcOffsetDoubles, lengthDoubles); - setPosition(pos + (lengthDoubles) << DOUBLE_SHIFT); + setPosition(pos + (lengthDoubles << DOUBLE_SHIFT)); } @Override @@ -243,7 +243,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void putFloatArray(final float[] srcArray, final int srcOffsetFloats, final int lengthFloats) { final long pos = getPosition(); putFloatArr(seg, pos, srcArray, srcOffsetFloats, lengthFloats); - setPosition(pos + (lengthFloats) << FLOAT_SHIFT); + setPosition(pos + (lengthFloats << FLOAT_SHIFT)); } @Override @@ -262,7 +262,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void putIntArray(final int[] srcArray, final int srcOffsetInts, final int lengthInts) { final long pos = getPosition(); putIntArr(seg, pos, srcArray, srcOffsetInts, lengthInts); - setPosition(pos + (lengthInts) << INT_SHIFT); + setPosition(pos + (lengthInts << INT_SHIFT)); } @Override @@ -281,7 +281,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void putLongArray(final long[] srcArray, final int srcOffsetLongs, final int lengthLongs) { final long pos = getPosition(); putLongArr(seg, pos, srcArray, srcOffsetLongs, lengthLongs); - setPosition(pos + (lengthLongs) << LONG_SHIFT); + setPosition(pos + (lengthLongs << LONG_SHIFT)); } @Override @@ -300,7 +300,7 @@ final class NonNativeWritableBufferImpl extends WritableBufferImpl { public void putShortArray(final short[] srcArray, final int srcOffsetShorts, final int lengthShorts) { final long pos = getPosition(); putShortArr(seg, pos, srcArray, srcOffsetShorts, lengthShorts); - setPosition(pos + (lengthShorts) << SHORT_SHIFT); + setPosition(pos + (lengthShorts << SHORT_SHIFT)); } } diff --git a/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java b/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java index 1a0a29f..a746ebc 100644 --- a/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java +++ b/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java @@ -468,6 +468,22 @@ public class NativeWritableBufferImplTest { assertEquals(buf.getShort(0), 256); } + @Test + public void checkPutIntArray() { + WritableMemory wmem = WritableMemory.allocate(12); + WritableBuffer wbuf = wmem.asWritableBuffer(); + + wbuf.putInt(1); + int[] array = new int[] { 2 }; + wbuf.putIntArray(array, 0, 1); + wbuf.putInt(3); + + Buffer buf = wmem.asWritableBuffer(); + assertEquals(buf.getInt(), 1); + assertEquals(buf.getInt(), 2); + assertEquals(buf.getInt(), 3); + } + @Test public void printlnTest() { println("PRINTING: "+this.getClass().getName()); diff --git a/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java b/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java index 155409b..1de0c4c 100644 --- a/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java +++ b/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java @@ -273,7 +273,22 @@ public class NonNativeWritableBufferImplTest { Memory mreg = mem.region(0, 8); assertEquals(mreg.getTypeByteOrder(), ByteOrder.BIG_ENDIAN); assertEquals(mreg.getChar(0), 1); + } + + @Test + public void checkPutIntArray() { + WritableMemory wmem = WritableMemory.allocate(12, ByteOrder.BIG_ENDIAN); + WritableBuffer wbuf = wmem.asWritableBuffer(ByteOrder.BIG_ENDIAN); + + wbuf.putInt(1); + int[] array = new int[] { 2 }; + wbuf.putIntArray(array, 0, 1); + wbuf.putInt(3); + Buffer buf = wmem.asWritableBuffer(); + assertEquals(buf.getInt(), 1); + assertEquals(buf.getInt(), 2); + assertEquals(buf.getInt(), 3); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
