static void getNonNativeChars()

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


  static void getNonNativeChars(final Object unsafeObj, long cumOffsetBytes,
      long copyBytes, final char[] dstArray, int dstOffsetChars,
      int lengthChars) {
    ResourceImpl.checkBounds(dstOffsetChars, lengthChars, dstArray.length);
    while (copyBytes > UNSAFE_COPY_THRESHOLD_BYTES) {
      final long chunkBytes = Math.min(copyBytes, UNSAFE_COPY_THRESHOLD_BYTES);
      final int chunkChars = (int) (chunkBytes >> CHAR_SHIFT);
      getCharArrayChunk(unsafeObj, cumOffsetBytes, dstArray, dstOffsetChars, chunkChars);
      cumOffsetBytes += chunkBytes;
      dstOffsetChars += chunkChars;
      copyBytes -= chunkBytes;
      lengthChars -= chunkChars;
    }
    getCharArrayChunk(unsafeObj, cumOffsetBytes, dstArray, dstOffsetChars, lengthChars);
  }