diff options
Diffstat (limited to 'searchlib')
4 files changed, 13 insertions, 4 deletions
diff --git a/searchlib/src/tests/queryeval/predicate/predicate_search_test.cpp b/searchlib/src/tests/queryeval/predicate/predicate_search_test.cpp index efa01b79580..382e2bdb8ff 100644 --- a/searchlib/src/tests/queryeval/predicate/predicate_search_test.cpp +++ b/searchlib/src/tests/queryeval/predicate/predicate_search_test.cpp @@ -41,6 +41,8 @@ public: { } + ~MyPostingList() override; + bool next(uint32_t doc_id) override { if (_index < _entries.size()) { while (_entries[_index].first <= doc_id) { @@ -70,6 +72,8 @@ public: uint32_t getInterval() const override { return _interval; } }; +MyPostingList::~MyPostingList() = default; + template <int N> vector<PredicatePostingList::UP> make_posting_lists_vector(MyPostingList (&plists)[N]) { diff --git a/searchlib/src/vespa/searchlib/features/tensor_from_attribute_executor.h b/searchlib/src/vespa/searchlib/features/tensor_from_attribute_executor.h index 964d9599b57..f4a5b0b8d0a 100644 --- a/searchlib/src/vespa/searchlib/features/tensor_from_attribute_executor.h +++ b/searchlib/src/vespa/searchlib/features/tensor_from_attribute_executor.h @@ -22,6 +22,7 @@ private: const search::attribute::IAttributeVector *_attribute; vespalib::eval::ValueType _type; WeightedBufferType _attrBuffer; + std::vector<vespalib::stringref> _addr_ref; std::unique_ptr<vespalib::eval::Value> _tensor; public: @@ -30,9 +31,11 @@ public: : _attribute(attribute), _type(vespalib::eval::ValueType::tensor_type({{dimension}})), _attrBuffer(), + _addr_ref(), _tensor() { _attrBuffer.allocate(_attribute->getMaxValueCount()); + _addr_ref.reserve(1); } void execute(uint32_t docId) override; }; @@ -44,12 +47,11 @@ TensorFromAttributeExecutor<WeightedBufferType>::execute(uint32_t docId) _attrBuffer.fill(*_attribute, docId); auto factory = FastValueBuilderFactory::get(); auto builder = factory.create_value_builder<double>(_type, 1, 1, _attrBuffer.size()); - std::vector<vespalib::stringref> addr_ref; for (size_t i = 0; i < _attrBuffer.size(); ++i) { vespalib::string label(_attrBuffer[i].value()); - addr_ref.clear(); - addr_ref.push_back(label); - auto cell_array = builder->add_subspace(addr_ref); + _addr_ref.clear(); + _addr_ref.push_back(label); + auto cell_array = builder->add_subspace(_addr_ref); cell_array[0] = _attrBuffer[i].weight(); } _tensor = builder->build(std::move(builder)); diff --git a/searchlib/src/vespa/searchlib/queryeval/iterators.cpp b/searchlib/src/vespa/searchlib/queryeval/iterators.cpp index 32f6122558e..f9db8aea4f4 100644 --- a/searchlib/src/vespa/searchlib/queryeval/iterators.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/iterators.cpp @@ -11,4 +11,6 @@ RankedSearchIteratorBase(const fef::TermFieldMatchDataArray &matchData) _needUnpack(1) { } +RankedSearchIteratorBase::~RankedSearchIteratorBase() = default; + } diff --git a/searchlib/src/vespa/searchlib/queryeval/iterators.h b/searchlib/src/vespa/searchlib/queryeval/iterators.h index 0e44a6f6ff6..7adfe4aeba6 100644 --- a/searchlib/src/vespa/searchlib/queryeval/iterators.h +++ b/searchlib/src/vespa/searchlib/queryeval/iterators.h @@ -22,6 +22,7 @@ protected: void incNeedUnpack() { ++_needUnpack; } public: RankedSearchIteratorBase(const fef::TermFieldMatchDataArray &matchData); + ~RankedSearchIteratorBase() override; bool getUnpacked() const { return _needUnpack == 0; } }; |