aboutsummaryrefslogtreecommitdiffstats
path: root/searchsummary/src/vespa/juniper/result.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-08-31 21:07:40 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-08-31 21:07:40 +0000
commit42904e91499171a8acc5f72195a062884d323620 (patch)
tree3c2b9de5d9973f7cba7a852dd9b7469af881e0d4 /searchsummary/src/vespa/juniper/result.cpp
parent05dd7a28aa0579e0a0e58859e4dcdad2eca63b04 (diff)
Only reserve 4k upfront, instead of max permissible length.
Diffstat (limited to 'searchsummary/src/vespa/juniper/result.cpp')
-rw-r--r--searchsummary/src/vespa/juniper/result.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/searchsummary/src/vespa/juniper/result.cpp b/searchsummary/src/vespa/juniper/result.cpp
index fddc5d65c86..46e33209d52 100644
--- a/searchsummary/src/vespa/juniper/result.cpp
+++ b/searchsummary/src/vespa/juniper/result.cpp
@@ -8,6 +8,7 @@
#include "Matcher.h"
#include "config.h"
#include "appender.h"
+#include <vespa/vespalib/util/size_literals.h>
#include <vespa/log/log.h>
LOG_SETUP(".juniper.result");
@@ -18,9 +19,9 @@ namespace juniper {
class SummaryImpl : public Summary
{
public:
- explicit SummaryImpl() : _text("") {}
+ explicit SummaryImpl() : _text() {}
explicit SummaryImpl(const std::string& t) : _text(t) {}
- ~SummaryImpl() {}
+ ~SummaryImpl() override = default;
const char* Text() const override { return _text.c_str(); }
size_t Length() const override { return _text.size(); }
std::string _text;
@@ -96,9 +97,7 @@ Result::Result(const Config& config, QueryHandle& qhandle,
}
}
-Result::~Result()
-{
-}
+Result::~Result() = default;
long Result::GetRelevancy()
@@ -158,13 +157,12 @@ Summary* Result::GetTeaser(const Config* alt_config)
ucs4_t *dst_end = dst + TOKEN_DSTLEN;
const Fast_WordFolder *folder = _config->_matcherparams.WordFolder();
- text.reserve(_dynsum_len*2);
+ text.reserve(std::min(4_Ki, size_t(_dynsum_len*2)));
if (src_end - src <= _dynsum_len) {
a.append(text, src, src_end - src);
src = src_end; // ensure while loop not run
}
- while (src < src_end)
- {
+ while (src < src_end) {
const char *startpos;
size_t tokenLen;
const char *old_src = src;