From b9ebbfb2682e42e43fe9d657c04a346152bfcadc Mon Sep 17 00:00:00 2001 From: Sunil Ramchandra Pawar Date: Thu, 27 Mar 2025 23:34:22 +0530 Subject: [PATCH] nit changes, reverting to orginal condition and adding READ_ONLY_HEAP to Generators. --- src/java/org/apache/cassandra/utils/FastByteOperations.java | 5 ++--- test/unit/org/apache/cassandra/utils/Generators.java | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/java/org/apache/cassandra/utils/FastByteOperations.java b/src/java/org/apache/cassandra/utils/FastByteOperations.java index b1514543d2..41f084d842 100644 --- a/src/java/org/apache/cassandra/utils/FastByteOperations.java +++ b/src/java/org/apache/cassandra/utils/FastByteOperations.java @@ -196,7 +196,6 @@ public class FastByteOperations { BYTE_ARRAY_BASE_OFFSET = theUnsafe.arrayBaseOffset(byte[].class); DIRECT_BUFFER_ADDRESS_OFFSET = theUnsafe.objectFieldOffset(Buffer.class.getDeclaredField("address")); - HEAP_HB_FIELD = theUnsafe.objectFieldOffset(ByteBuffer.class.getDeclaredField("hb")); } catch (Exception e) @@ -276,8 +275,8 @@ public class FastByteOperations // Heap ByteBuffer (Mutable) if (srcBuf.hasArray() && !srcBuf.isReadOnly()) { - src = theUnsafe.getObject(srcBuf, HEAP_HB_FIELD); - srcOffset = BYTE_ARRAY_BASE_OFFSET; + 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()) diff --git a/test/unit/org/apache/cassandra/utils/Generators.java b/test/unit/org/apache/cassandra/utils/Generators.java index 5f99421240..41f3d99f0d 100644 --- a/test/unit/org/apache/cassandra/utils/Generators.java +++ b/test/unit/org/apache/cassandra/utils/Generators.java @@ -365,7 +365,7 @@ public final class Generators public static Gen bytes(int min, int max) { - return bytes(min, max, SourceDSL.arbitrary().constant(BBCases.HEAP)); + return bytes(min, max, SourceDSL.arbitrary().pick(BBCases.HEAP, BBCases.READ_ONLY_HEAP)); } public static Gen directBytes(int min, int max)