NativeBufferUtils#memoryMove(ByteBuffer, ByteBuffer, long) uses the GNU libc void * memmove ( void *to, const void *from, size_t size ) from string.h which according to the documentation:
memmove copies the size bytes at from into the size bytes at to, even if those two blocks
of space overlap. In the case of overlap, memmove is careful to copy the original values
of the bytes in the block at from, including those bytes which also belong to the block
at to.
The value returned by memmove is the value of to.
The workaround is to remove the function memoryMove and internally implement the memmove() for the java side memoryCopy().
NativeBufferUtils#memoryMove(ByteBuffer, ByteBuffer, long)uses the GNU libcvoid * memmove ( void *to, const void *from, size_t size )fromstring.hwhich according to the documentation:The workaround is to remove the function
memoryMoveand internally implement thememmove()for the java sidememoryCopy().