aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-10-03 14:46:40 +0200
committerGitHub <noreply@github.com>2023-10-03 14:46:40 +0200
commitc09cfc611673efb38f8d29b33e0e50ced8197666 (patch)
tree0cc184c87011e5f598e34e418662a6d52e3d168b /searchlib/src/vespa
parentc96c5dd1b6c50d89c5df73a0e36b1c9f7b003e7c (diff)
parent6b27ae6138a1e924a39806bc1de75ef91c30a5c6 (diff)
Merge pull request #28771 from vespa-engine/balder/test-multibivector-iterator-with-short-vectorsv8.237.19
Balder/test multibivector iterator with short vectors MERGEOK
Diffstat (limited to 'searchlib/src/vespa')
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.h1
2 files changed, 3 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp
index 6408004ea32..563a88e860f 100644
--- a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp
@@ -66,7 +66,7 @@ bool
MultiBitVector<Update>::updateLastValue(uint32_t docId) noexcept
{
if (docId >= _lastMaxDocIdLimit) {
- if (__builtin_expect(docId >= _numDocs, false)) {
+ if (__builtin_expect(isAtEnd(docId), false)) {
return true;
}
const uint32_t index(BitWord::wordNum(docId));
@@ -147,7 +147,7 @@ public:
private:
void doSeek(uint32_t docId) override {
docId = this->_mbv.strictSeek(docId);
- if (__builtin_expect(docId >= this->getEndId(), false)) {
+ if (__builtin_expect(this->_mbv.isAtEnd(docId), false)) {
this->setAtEnd();
} else {
this->setDocId(docId);
diff --git a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.h b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.h
index 5c3d17c6786..855ecfae60c 100644
--- a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.h
+++ b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.h
@@ -19,6 +19,7 @@ public:
_lastMaxDocIdLimit = 0;
_lastMaxDocIdLimitRequireFetch = 0;
}
+ bool isAtEnd(uint32_t docId) const noexcept { return docId >= _numDocs; }
void addBitVector(Meta bv, uint32_t docIdLimit);
protected:
uint32_t _numDocs;