From a8ebf0b87a2fd613a5b08bd9e295006415f7de27 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 8 Nov 2021 09:22:45 +0100 Subject: [PATCH] Inline Entry.contains() MutableUnsignedLongSet.add() has half of the check done in contains() as an invariant. Inline the second part there, improving performance a bit. Thisleaves only UnsignedLongSet.contains() as the sole caller of Entry.contains(). Inline it there, reducing the footprint a bit. JIRA: CONTROLLER-2014 Change-Id: Ie38283a1fc46aff8fbc717a23aa9a068805636db Signed-off-by: Robert Varga --- .../cluster/datastore/utils/MutableUnsignedLongSet.java | 3 ++- .../cluster/datastore/utils/UnsignedLongSet.java | 8 +++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/MutableUnsignedLongSet.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/MutableUnsignedLongSet.java index 6fdb04f1fe..689baad40b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/MutableUnsignedLongSet.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/MutableUnsignedLongSet.java @@ -38,7 +38,8 @@ public final class MutableUnsignedLongSet extends UnsignedLongSet implements Mut final var headIt = ranges.headSet(range, true).descendingIterator(); if (headIt.hasNext()) { final var head = headIt.next(); - if (head.contains(longBits)) { + if (Long.compareUnsigned(head.upperBits, longBits) >= 0) { + // Already contained, this is a no-op return; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java index daf958a987..14e3b6a41f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java @@ -67,10 +67,6 @@ abstract class UnsignedLongSet { return UnsignedLong.fromLongBits(upperBits); } - boolean contains(final long longBits) { - return Long.compareUnsigned(lowerBits, longBits) <= 0 && Long.compareUnsigned(upperBits, longBits) >= 0; - } - Entry copy() { return new Entry(lowerBits, upperBits); } @@ -139,7 +135,9 @@ abstract class UnsignedLongSet { public final boolean contains(final long longBits) { final var head = ranges.floor(Entry.of(longBits)); - return head != null && head.contains(longBits); + return head != null + && Long.compareUnsigned(head.lowerBits, longBits) <= 0 + && Long.compareUnsigned(head.upperBits, longBits) >= 0; } public final boolean isEmpty() { -- 2.36.6