Moving read only check condition at the end.

This commit is contained in:
Sunil Ramchandra Pawar 2025-07-29 21:17:33 +05:30
parent cec1534a7f
commit 57a0dbc899
1 changed files with 8 additions and 7 deletions

View File

@ -283,25 +283,26 @@ public class FastByteOperations
Object src;
long srcOffset;
// Direct ByteBuffer
if (srcBuf.isDirect())
{
src = null;
srcOffset = theUnsafe.getLong(srcBuf, DIRECT_BUFFER_ADDRESS_OFFSET);
}
// Heap ByteBuffer (Mutable)
if (srcBuf.hasArray())
else if (srcBuf.hasArray())
{
src = srcBuf.array();
srcOffset = BYTE_ARRAY_BASE_OFFSET + srcBuf.arrayOffset();
}
// Read-Only Heap ByteBuffer (Still has hb but read-only)
else if (srcBuf.isReadOnly() && !srcBuf.isDirect())
else
{
src = theUnsafe.getObject(srcBuf, HEAP_HB_FIELD_OFFSET);
int arrayOffset = theUnsafe.getInt(srcBuf, HEAP_ARRAY_FIELD_OFFSET);
srcOffset = BYTE_ARRAY_BASE_OFFSET + arrayOffset ;
}
// Direct ByteBuffer
else
{
src = null;
srcOffset = theUnsafe.getLong(srcBuf, DIRECT_BUFFER_ADDRESS_OFFSET);
}
copy(src, srcOffset + srcPosition, trgBuf, trgPosition, length);
}