aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-05-19 11:08:09 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-05-19 11:08:09 +0000
commitff077b69f84b3494b10c75a608deea0b51e6e8b2 (patch)
treedbf50dd080fc10bd924d0096e0c7ef4b9b0445d0 /searchlib
parentf025340d974120b7eabcfa8223d6663bd49ba113 (diff)
Unify merge loops
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/searchcontextelementiterator.cpp9
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/elementiterator.cpp8
2 files changed, 9 insertions, 8 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/searchcontextelementiterator.cpp b/searchlib/src/vespa/searchlib/attribute/searchcontextelementiterator.cpp
index 8bfb07df938..87c09186746 100644
--- a/searchlib/src/vespa/searchlib/attribute/searchcontextelementiterator.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/searchcontextelementiterator.cpp
@@ -21,11 +21,12 @@ SearchContextElementIterator::mergeElementIds(uint32_t docId, std::vector<uint32
int32_t id(-1);
int32_t weight(0);
for (int32_t candidate : elementIds) {
- if (candidate >= id) {
+ if (candidate > id) {
id = _searchContext.find(docId, candidate, weight);
- if (id == candidate) {
- elementIds[toKeep++] = candidate;
- }
+ if (id < 0) break;
+ }
+ if (id == candidate) {
+ elementIds[toKeep++] = candidate;
}
}
elementIds.resize(toKeep);
diff --git a/searchlib/src/vespa/searchlib/queryeval/elementiterator.cpp b/searchlib/src/vespa/searchlib/queryeval/elementiterator.cpp
index 4ad855da857..da4a088adea 100644
--- a/searchlib/src/vespa/searchlib/queryeval/elementiterator.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/elementiterator.cpp
@@ -36,15 +36,15 @@ ElementIteratorWrapper::mergeElementIds(uint32_t docId, std::vector<uint32_t> &
int32_t id(-1);
auto it = _tfmd.begin();
for (int32_t candidate : elementIds) {
- if (candidate >= id) {
+ if (candidate > id) {
while ((it < _tfmd.end()) && (candidate > int(it->getElementId()))) {
it++;
}
if (it == _tfmd.end()) break;
id = it->getElementId();
- if (id == candidate) {
- elementIds[toKeep++] = candidate;
- }
+ }
+ if (id == candidate) {
+ elementIds[toKeep++] = candidate;
}
}
elementIds.resize(toKeep);