mirror of https://github.com/apache/lucene.git
LUCENE-6009: Remove redundant == NO_MORE_DOCS checks.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1632314 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e1b7594cd0
commit
6697abbb28
|
@ -59,24 +59,7 @@ public final class FixedBitSet extends DocIdSet implements MutableBits {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int nextDoc() {
|
public int nextDoc() {
|
||||||
if (doc == NO_MORE_DOCS || ++doc >= numBits) {
|
return advance(doc + 1);
|
||||||
return doc = NO_MORE_DOCS;
|
|
||||||
}
|
|
||||||
int i = doc >> 6;
|
|
||||||
long word = bits[i] >> doc; // skip all the bits to the right of index
|
|
||||||
|
|
||||||
if (word != 0) {
|
|
||||||
return doc = doc + Long.numberOfTrailingZeros(word);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (++i < numWords) {
|
|
||||||
word = bits[i];
|
|
||||||
if (word != 0) {
|
|
||||||
return doc = (i << 6) + Long.numberOfTrailingZeros(word);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return doc = NO_MORE_DOCS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -91,7 +74,7 @@ public final class FixedBitSet extends DocIdSet implements MutableBits {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int advance(int target) {
|
public int advance(int target) {
|
||||||
if (doc == NO_MORE_DOCS || target >= numBits) {
|
if (target >= numBits) {
|
||||||
return doc = NO_MORE_DOCS;
|
return doc = NO_MORE_DOCS;
|
||||||
}
|
}
|
||||||
int i = target >> 6;
|
int i = target >> 6;
|
||||||
|
|
|
@ -82,9 +82,6 @@ public final class NotDocIdSet extends DocIdSet {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int nextDoc() throws IOException {
|
public int nextDoc() throws IOException {
|
||||||
if (doc == NO_MORE_DOCS) {
|
|
||||||
return NO_MORE_DOCS;
|
|
||||||
}
|
|
||||||
return advance(doc + 1);
|
return advance(doc + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -282,9 +282,6 @@ public class RoaringDocIdSet extends DocIdSet {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int nextDoc() throws IOException {
|
public int nextDoc() throws IOException {
|
||||||
if (doc == NO_MORE_DOCS) {
|
|
||||||
return NO_MORE_DOCS;
|
|
||||||
}
|
|
||||||
final int subNext = sub.nextDoc();
|
final int subNext = sub.nextDoc();
|
||||||
if (subNext == NO_MORE_DOCS) {
|
if (subNext == NO_MORE_DOCS) {
|
||||||
return firstDocFromNextBlock();
|
return firstDocFromNextBlock();
|
||||||
|
|
|
@ -248,16 +248,17 @@ public class SparseFixedBitSet extends DocIdSet implements Bits {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int nextDoc() throws IOException {
|
public int nextDoc() throws IOException {
|
||||||
if (++doc >= length) {
|
return advance(doc + 1);
|
||||||
return doc = NO_MORE_DOCS;
|
|
||||||
}
|
|
||||||
return currentOrNextDoc();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int currentOrNextDoc() {
|
@Override
|
||||||
final int i4096 = doc >>> 12;
|
public int advance(int target) throws IOException {
|
||||||
|
final int i4096 = target >>> 12;
|
||||||
|
if (i4096 >= indices.length) {
|
||||||
|
return doc = NO_MORE_DOCS;
|
||||||
|
}
|
||||||
final long index = indices[i4096];
|
final long index = indices[i4096];
|
||||||
int i64 = doc >>> 6;
|
int i64 = target >>> 6;
|
||||||
long indexBits = index >>> i64;
|
long indexBits = index >>> i64;
|
||||||
if (indexBits == 0) {
|
if (indexBits == 0) {
|
||||||
// if the index is zero, it means that there is no value in the
|
// if the index is zero, it means that there is no value in the
|
||||||
|
@ -270,7 +271,7 @@ public class SparseFixedBitSet extends DocIdSet implements Bits {
|
||||||
} else {
|
} else {
|
||||||
// We know we still have some 64-bits blocks that have bits set, let's
|
// We know we still have some 64-bits blocks that have bits set, let's
|
||||||
// advance to the next one by skipping trailing zeros of the index
|
// advance to the next one by skipping trailing zeros of the index
|
||||||
int i1 = doc & 0x3F;
|
int i1 = target & 0x3F;
|
||||||
int trailingZeros = Long.numberOfTrailingZeros(indexBits);
|
int trailingZeros = Long.numberOfTrailingZeros(indexBits);
|
||||||
if (trailingZeros != 0) {
|
if (trailingZeros != 0) {
|
||||||
// no bits in the current long, go to the next one
|
// no bits in the current long, go to the next one
|
||||||
|
@ -285,7 +286,7 @@ public class SparseFixedBitSet extends DocIdSet implements Bits {
|
||||||
int longIndex = Long.bitCount(index & ((1L << i64) - 1)); // shifts are mod 64 in java
|
int longIndex = Long.bitCount(index & ((1L << i64) - 1)); // shifts are mod 64 in java
|
||||||
final long[] longArray = bits[i4096];
|
final long[] longArray = bits[i4096];
|
||||||
assert longArray[longIndex] != 0;
|
assert longArray[longIndex] != 0;
|
||||||
long bits = SparseFixedBitSet.this.bits[i4096][longIndex] >>> i1; // shifts are mod 64 in java
|
long bits = longArray[longIndex] >>> i1; // shifts are mod 64 in java
|
||||||
if (bits != 0L) {
|
if (bits != 0L) {
|
||||||
// hurray, we found some non-zero bits, this gives us the next document:
|
// hurray, we found some non-zero bits, this gives us the next document:
|
||||||
i1 += Long.numberOfTrailingZeros(bits);
|
i1 += Long.numberOfTrailingZeros(bits);
|
||||||
|
@ -312,17 +313,6 @@ public class SparseFixedBitSet extends DocIdSet implements Bits {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int advance(int target) throws IOException {
|
|
||||||
if (target >= length) {
|
|
||||||
return doc = NO_MORE_DOCS;
|
|
||||||
} else {
|
|
||||||
doc = target;
|
|
||||||
}
|
|
||||||
|
|
||||||
return currentOrNextDoc();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long cost() {
|
public long cost() {
|
||||||
// although constant-time, approximateCardinality is a bit expensive so
|
// although constant-time, approximateCardinality is a bit expensive so
|
||||||
|
|
Loading…
Reference in New Issue