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 2024/05/08 17:43:37 UTC

(datasketches-memory) 01/01: As reported in issue #178:

This is an automated email from the ASF dual-hosted git repository.

leerho pushed a commit to branch Fix_issue_178_for_2.2.X
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git

commit ca50bfa2bb181164e66e15e28e48ecd7883fb632
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Wed May 8 10:43:26 2024 -0700

    As reported in issue #178:
    
    static Memory wrap(byte[] array, int offsetBytes, int lengthBytes,
    ByteOrder byteOrder) ...
    ...
    return BaseWritableMemoryImpl.wrapHeapArray(array, 0, lengthBytes, true,
    ByteOrder.nativeOrder(), null);
    
    The "0" in the return statement should have been "offsetBytes".
    I checked the similar classes WritableMemory, Buffer and WritableBuffer
    for a similar error and they were all OK.
    This fix includes a test for this bug.
    
    This will be merged into branch 2.2.X in preparation for a bug fix
    release 2.2.1.
---
 .../src/main/java/org/apache/datasketches/memory/Memory.java |  2 +-
 .../org/apache/datasketches/memory/internal/MemoryTest.java  | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java
index 83fe2d0..7c82882 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java
@@ -195,7 +195,7 @@ public interface Memory extends BaseState {
     negativeCheck(offsetBytes, "offsetBytes");
     negativeCheck(lengthBytes, "lengthBytes");
     UnsafeUtil.checkBounds(offsetBytes, lengthBytes, array.length);
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0, lengthBytes, true, ByteOrder.nativeOrder(), null);
+    return BaseWritableMemoryImpl.wrapHeapArray(array, offsetBytes, lengthBytes, true, ByteOrder.nativeOrder(), null);
   }
 
   /**
diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
index 045c59f..8a3d472 100644
--- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
+++ b/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
@@ -457,6 +457,18 @@ public class MemoryTest {
     assertEquals(mem.getChar(0), 256);
   }
 
+  @Test
+  public void checkIssue178() {
+    int n = 8;
+    byte[] bArr = new byte[n];
+    for (int i = 0; i < n; i++) { bArr[i] = (byte)i; }
+    Memory mem = Memory.wrap(bArr, n / 2, n / 2, ByteOrder.nativeOrder());
+    for (int i = 0; i < n / 2; i++) {
+      println(mem.getByte(i));
+      assertEquals(mem.getByte(i), n / 2 + i);
+    }
+  }
+
   @Test
   public void printlnTest() {
     println("PRINTING: "+this.getClass().getName());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org