summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-05-19 13:22:41 +0200
committerTor Egge <Tor.Egge@online.no>2022-05-19 13:22:41 +0200
commit2fa1f136f0216ffa067b77a8d93e554fc290fefe (patch)
treeaa8cb2ffaab53a309884a7746f10603f094f1f2c
parentd4b9107f33a189d73f0433008c9e1d1c49348fe6 (diff)
Hit collector array size should never be larger than doc id limit.
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp
index 3293019e538..b851fc50518 100644
--- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp
@@ -37,7 +37,7 @@ HitCollector::sortHitsByDocId()
HitCollector::HitCollector(uint32_t numDocs,
uint32_t maxHitsSize)
: _numDocs(numDocs),
- _maxHitsSize(maxHitsSize),
+ _maxHitsSize(std::min(maxHitsSize, numDocs)),
_maxDocIdVectorSize((numDocs + 31) / 32),
_hits(),
_hitsSortOrder(SortOrder::DOC_ID),
@@ -53,7 +53,7 @@ HitCollector::HitCollector(uint32_t numDocs,
} else {
_collector = std::make_unique<DocIdCollector<false>>(*this);
}
- _hits.reserve(maxHitsSize);
+ _hits.reserve(_maxHitsSize);
}
HitCollector::~HitCollector() = default;