Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Improve UnsignedLongSet efficiency
[controller.git]
/
opendaylight
/
md-sal
/
sal-distributed-datastore
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
datastore
/
utils
/
UnsignedLongSet.java
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 466c0276cd55bca6e39667086ed4d66851a83144..ca45a3c45f0f3a9a77b5564980fed97ee0f20ac1 100644
(file)
--- 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
@@
-20,7
+20,6
@@
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.Collections;
import java.io.DataOutput;
import java.io.IOException;
import java.util.Collections;
-import java.util.Iterator;
import java.util.NavigableSet;
import java.util.TreeSet;
import org.eclipse.jdt.annotation.NonNull;
import java.util.NavigableSet;
import java.util.TreeSet;
import org.eclipse.jdt.annotation.NonNull;
@@
-141,7
+140,7
@@
abstract class UnsignedLongSet {
final void addImpl(final long longBits) {
final var range = Entry.of(longBits);
final void addImpl(final long longBits) {
final var range = Entry.of(longBits);
- final var headIt =
headIter(range
);
+ final var headIt =
ranges.headSet(range, true).descendingIterator(
);
if (headIt.hasNext()) {
final var head = headIt.next();
if (head.contains(longBits)) {
if (headIt.hasNext()) {
final var head = headIt.next();
if (head.contains(longBits)) {
@@
-149,9
+148,8
@@
abstract class UnsignedLongSet {
}
if (head.upperBits + 1 == longBits) {
head.upperBits = longBits;
}
if (head.upperBits + 1 == longBits) {
head.upperBits = longBits;
- final var tailSet = ranges.tailSet(range);
- if (!tailSet.isEmpty()) {
- final var tail = tailSet.first();
+ final var tail = ranges.higher(range);
+ if (tail != null) {
if (tail.lowerBits - 1 == longBits) {
tail.lowerBits = head.lowerBits;
headIt.remove();
if (tail.lowerBits - 1 == longBits) {
tail.lowerBits = head.lowerBits;
headIt.remove();
@@
-161,9
+159,8
@@
abstract class UnsignedLongSet {
}
}
}
}
- final var tailSet = ranges.tailSet(range);
- if (!tailSet.isEmpty()) {
- final var tail = tailSet.first();
+ final var tail = ranges.higher(range);
+ if (tail != null) {
if (tail.lowerBits - 1 == longBits) {
tail.lowerBits = longBits;
return;
if (tail.lowerBits - 1 == longBits) {
tail.lowerBits = longBits;
return;
@@
-174,8
+171,8
@@
abstract class UnsignedLongSet {
}
public final boolean contains(final long longBits) {
}
public final boolean contains(final long longBits) {
- final var head
It = headIte
r(Entry.of(longBits));
- return head
It.hasNext() && headIt.next()
.contains(longBits);
+ final var head
= ranges.floo
r(Entry.of(longBits));
+ return head
!= null && head
.contains(longBits);
}
public final boolean isEmpty() {
}
public final boolean isEmpty() {
@@
-227,8
+224,4
@@
abstract class UnsignedLongSet {
return helper.add("size", size).toString();
}
return helper.add("size", size).toString();
}
-
- private Iterator<Entry> headIter(final Entry range) {
- return ranges.headSet(range, true).descendingIterator();
- }
}
}