summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-06-30 16:58:50 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-07-01 11:27:51 +0000
commitc474c687512c5100c3a7aafdc72d813544904020 (patch)
treed9be88630c4b1ebaa83e3ef019fba37712060c3f /searchsummary
parentc0e3cdf497db1d02f64b111d575b92e5371a8416 (diff)
Allow presizing of arrays in slime.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
index b600a612bb5..d41d4e0010c 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp
@@ -210,9 +210,9 @@ MultiAttrDFW<DataType>::insertField(uint32_t docid, GetDocsumsState* state, ResT
return; // Don't insert empty fields
}
- Cursor &arr = target.insertArray();
std::vector<DataType> elements(entries);
entries = std::min(entries, attr.get(docid, elements.data(), entries));
+ Cursor &arr = target.insertArray(entries);
if (_filter_elements) {
const auto& matching_elems = state->get_matching_elements(*_matching_elems_fields)
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp
index 6991d3acb29..aa891680a09 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp
@@ -107,7 +107,7 @@ filter_matching_elements_in_input_field(const Slime& input_field, const std::vec
{
SlimeInserter output_inserter(output_field);
Inspector& input_inspector = input_field.get();
- ArrayInserter array_inserter(output_inserter.insertArray());
+ ArrayInserter array_inserter(output_inserter.insertArray(matching_elems.size()));
auto elems_itr = matching_elems.begin();
for (size_t i = 0; (i < input_inspector.entries()) && (elems_itr != matching_elems.end()); ++i) {
assert(*elems_itr >= i);