You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2025/02/01 20:34:20 UTC
(datasketches-memory) 01/02: Merge pull request #253 from pawel-wiejacha/fix_set_position
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 <le...@users.noreply.github.com>
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: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org