This is an automated email from the ASF dual-hosted git repository. dcapwell pushed a commit to branch CASSANDRA-21077 in repository https://gitbox.apache.org/repos/asf/cassandra-accord.git
commit 313f4ad87d1ae88d7d75ba0fa65818990e39b29f Author: David Capwell <[email protected]> AuthorDate: Fri Dec 12 15:42:40 2025 -0800 rename setRange to show inclusive/exclusive and fixed a bug with small bit set where to=64 would no-op --- .../main/java/accord/utils/ImmutableBitSet.java | 2 +- .../src/main/java/accord/utils/LargeBitSet.java | 22 +++++++++++----------- .../src/main/java/accord/utils/SimpleBitSet.java | 2 +- .../src/main/java/accord/utils/SmallBitSet.java | 5 +++-- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/accord-core/src/main/java/accord/utils/ImmutableBitSet.java b/accord-core/src/main/java/accord/utils/ImmutableBitSet.java index bdc4a3f4..0a9e4598 100644 --- a/accord-core/src/main/java/accord/utils/ImmutableBitSet.java +++ b/accord-core/src/main/java/accord/utils/ImmutableBitSet.java @@ -67,7 +67,7 @@ public class ImmutableBitSet extends LargeBitSet } @Override - public void setRange(int from, int to) + public void setRange(int fromInclusive, int toExclusive) { throw new UnsupportedOperationException(); } diff --git a/accord-core/src/main/java/accord/utils/LargeBitSet.java b/accord-core/src/main/java/accord/utils/LargeBitSet.java index fbeae5bf..5d519e4e 100644 --- a/accord-core/src/main/java/accord/utils/LargeBitSet.java +++ b/accord-core/src/main/java/accord/utils/LargeBitSet.java @@ -98,36 +98,36 @@ public class LargeBitSet implements SimpleBitSet return true; } - public void setRange(int from, int to) + public void setRange(int fromInclusive, int toExclusive) { - Invariants.requireArgument(from <= to, "from > to (%s > %s)", from, to); - if (from == to) + Invariants.requireArgument(fromInclusive <= toExclusive, "from > to (%s > %s)", fromInclusive, toExclusive); + if (fromInclusive == toExclusive) return; - int fromIndex = from >>> 6; - int toIndex = (to + 63) >>> 6; + int fromIndex = fromInclusive >>> 6; + int toIndex = (toExclusive + 63) >>> 6; if (fromIndex + 1 == toIndex) { - long addBits = (-1L >>> (64 - (to & 63))) & (-1L << (from & 63)); + long addBits = (-1L >>> (64 - (toExclusive & 63))) & (-1L << (fromInclusive & 63)); orBitsAtIndex(fromIndex, addBits); } else if (count == 0) { - bits[toIndex - 1] = -1L >>> (64 - (to & 63)); + bits[toIndex - 1] = -1L >>> (64 - (toExclusive & 63)); for (int i = fromIndex + 1, maxi = toIndex - 1; i < maxi ; ++i) bits[i] = -1L; - bits[fromIndex] = -1L << (from & 63); - count = to - from; + bits[fromIndex] = -1L << (fromInclusive & 63); + count = toExclusive - fromInclusive; } else { - orBitsAtIndex(fromIndex, -1L << (from & 63)); + orBitsAtIndex(fromIndex, -1L << (fromInclusive & 63)); for (int i = fromIndex + 1, maxi = toIndex - 1; i < maxi ; ++i) { count += 64 - Long.bitCount(bits[i]); bits[i] = -1L; } - orBitsAtIndex(toIndex - 1, -1L >>> (64 - (to & 63))); + orBitsAtIndex(toIndex - 1, -1L >>> (64 - (toExclusive & 63))); } } diff --git a/accord-core/src/main/java/accord/utils/SimpleBitSet.java b/accord-core/src/main/java/accord/utils/SimpleBitSet.java index 4380e3c8..695ca935 100644 --- a/accord-core/src/main/java/accord/utils/SimpleBitSet.java +++ b/accord-core/src/main/java/accord/utils/SimpleBitSet.java @@ -22,7 +22,7 @@ public interface SimpleBitSet { boolean get(int i); boolean set(int i); - void setRange(int from, int to); + void setRange(int fromInclusive, int toExclusive); boolean unset(int i); void clear(); boolean isEmpty(); diff --git a/accord-core/src/main/java/accord/utils/SmallBitSet.java b/accord-core/src/main/java/accord/utils/SmallBitSet.java index 2deb43b3..3ac6e7f9 100644 --- a/accord-core/src/main/java/accord/utils/SmallBitSet.java +++ b/accord-core/src/main/java/accord/utils/SmallBitSet.java @@ -49,9 +49,10 @@ public class SmallBitSet implements SimpleBitSet } @Override - public void setRange(int from, int to) + public void setRange(int fromInclusive, int toExclusive) { - bits |= ~(-1L << to) & (-1L << from); + long maskTo = (toExclusive >= 64) ? -1L : ~(-1L << toExclusive); + bits |= maskTo & (-1L << fromInclusive); } public boolean get(int i) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
