diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-05-19 11:08:09 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-05-19 11:08:09 +0000 |
commit | ff077b69f84b3494b10c75a608deea0b51e6e8b2 (patch) | |
tree | dbf50dd080fc10bd924d0096e0c7ef4b9b0445d0 /searchlib | |
parent | f025340d974120b7eabcfa8223d6663bd49ba113 (diff) |
Unify merge loops
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/searchcontextelementiterator.cpp | 9 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/elementiterator.cpp | 8 |
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); |