aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/queryeval/predicate/predicate_search_test.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/features/tensor_from_attribute_executor.h10
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/iterators.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/iterators.h1
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; }
};