aboutsummaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-09-27 11:20:33 +0200
committerTor Egge <Tor.Egge@broadpark.no>2019-09-27 11:20:33 +0200
commit7c65b5500e4e7680e72a6403f284b9757f1879ee (patch)
treef1a6b94a544e5085292a657ea34b71522ac5b566 /searchsummary
parent83c97aaad8bdfd6cc11b49be4a542e179cda1b4f (diff)
Move ownership of MatchingElements to GetDocsumsState.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp2
-rw-r--r--searchsummary/src/tests/docsummary/positionsdfw_test.cpp2
-rw-r--r--searchsummary/src/tests/docsummary/slime_summary/slime_summary_test.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h4
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;