static void getNonNativeLongs()

in datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java [310:324]


  static void getNonNativeLongs(final Object unsafeObj, long cumOffsetBytes,
      long copyBytes, final long[] dstArray, int dstOffsetLongs,
      int lengthLongs) {
    ResourceImpl.checkBounds(dstOffsetLongs, lengthLongs, dstArray.length);
    while (copyBytes > UNSAFE_COPY_THRESHOLD_BYTES) {
      final long chunkBytes = Math.min(copyBytes, UNSAFE_COPY_THRESHOLD_BYTES);
      final int chunkLongs = (int) (chunkBytes >> LONG_SHIFT);
      getLongArrayChunk(unsafeObj, cumOffsetBytes, dstArray, dstOffsetLongs, chunkLongs);
      cumOffsetBytes += chunkBytes;
      dstOffsetLongs += chunkLongs;
      copyBytes -= chunkBytes;
      lengthLongs -= chunkLongs;
    }
    getLongArrayChunk(unsafeObj, cumOffsetBytes, dstArray, dstOffsetLongs, lengthLongs);
  }