diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-09-27 11:20:33 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-09-27 11:20:33 +0200 |
commit | 7c65b5500e4e7680e72a6403f284b9757f1879ee (patch) | |
tree | f1a6b94a544e5085292a657ea34b71522ac5b566 /searchsummary | |
parent | 83c97aaad8bdfd6cc11b49be4a542e179cda1b4f (diff) |
Move ownership of MatchingElements to GetDocsumsState.
Diffstat (limited to 'searchsummary')
5 files changed, 8 insertions, 8 deletions
diff --git a/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp b/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp index 240e7334292..961acadeddf 100644 --- a/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp +++ b/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp @@ -165,7 +165,7 @@ public: void FillSummaryFeatures(GetDocsumsState *, IDocsumEnvironment *) override { } void FillRankFeatures(GetDocsumsState *, IDocsumEnvironment *) override { } void ParseLocation(GetDocsumsState *) override { } - const MatchingElements& fill_matching_elements() override { return _matching_elements; } + std::unique_ptr<MatchingElements> fill_matching_elements() override { return std::make_unique<MatchingElements>(_matching_elements); } ~DummyStateCallback() override { } }; diff --git a/searchsummary/src/tests/docsummary/positionsdfw_test.cpp b/searchsummary/src/tests/docsummary/positionsdfw_test.cpp index 86a2e9ae76f..476891ca40f 100644 --- a/searchsummary/src/tests/docsummary/positionsdfw_test.cpp +++ b/searchsummary/src/tests/docsummary/positionsdfw_test.cpp @@ -106,7 +106,7 @@ struct MyGetDocsumsStateCallback : GetDocsumsStateCallback { virtual void FillSummaryFeatures(GetDocsumsState *, IDocsumEnvironment *) override {} virtual void FillRankFeatures(GetDocsumsState *, IDocsumEnvironment *) override {} virtual void ParseLocation(GetDocsumsState *) override {} - const MatchingElements& fill_matching_elements() override { abort(); } + std::unique_ptr<MatchingElements> fill_matching_elements() override { abort(); } }; template <typename AttrType> diff --git a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp index bd753f24bf3..efeb066135f 100644 --- a/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp +++ b/searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp @@ -79,7 +79,7 @@ struct DocsumFixture : IDocsumStore, GetDocsumsStateCallback { void FillSummaryFeatures(GetDocsumsState *, IDocsumEnvironment *) override { } void FillRankFeatures(GetDocsumsState *, IDocsumEnvironment *) override { } void ParseLocation(GetDocsumsState *) override { } - const MatchingElements& fill_matching_elements() override { abort(); } + std::unique_ptr<MatchingElements> fill_matching_elements() override { abort(); } }; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp index d78c908fa6a..7a609f2c971 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp @@ -26,7 +26,7 @@ GetDocsumsState::GetDocsumsState(GetDocsumsStateCallback &callback) _summaryFeatures(NULL), _summaryFeaturesCached(false), _rankFeatures(NULL), - _matching_elements(nullptr) + _matching_elements() { _dynteaser._docid = static_cast<uint32_t>(-1); _dynteaser._input = static_cast<uint32_t>(-1); @@ -52,8 +52,8 @@ GetDocsumsState::~GetDocsumsState() const MatchingElements & GetDocsumsState::get_matching_elements() { - if (_matching_elements == nullptr) { - _matching_elements = &_callback.fill_matching_elements(); + if (!_matching_elements) { + _matching_elements = _callback.fill_matching_elements(); } return *_matching_elements; } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h index 394913d3ad9..9eec51e3459 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h @@ -32,7 +32,7 @@ public: virtual void FillSummaryFeatures(GetDocsumsState * state, IDocsumEnvironment * env) = 0; virtual void FillRankFeatures(GetDocsumsState * state, IDocsumEnvironment * env) = 0; virtual void ParseLocation(GetDocsumsState * state) = 0; - virtual const MatchingElements& fill_matching_elements() = 0; + virtual std::unique_ptr<MatchingElements> fill_matching_elements() = 0; virtual ~GetDocsumsStateCallback(void) { } GetDocsumsStateCallback(const GetDocsumsStateCallback &) = delete; GetDocsumsStateCallback & operator = (const GetDocsumsStateCallback &) = delete; @@ -87,7 +87,7 @@ public: FeatureSet::SP _rankFeatures; // Used by AttributeCombinerDFW when filtering is enabled - const search::MatchingElements* _matching_elements; + std::unique_ptr<search::MatchingElements> _matching_elements; GetDocsumsState(const GetDocsumsState &) = delete; GetDocsumsState& operator=(const GetDocsumsState &) = delete; |