diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-06-21 07:26:30 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-06-21 07:26:30 +0000 |
commit | acb8b74bb3aef4def0c18231910f11532ab5053f (patch) | |
tree | c79c8c201505ea050411199ff6643f516a8d5ab8 /searchsummary | |
parent | fc1604631cb71e1df1affb4c0980b9d166501ccd (diff) |
Inline return AttrDFW::get_attribute() and clean up some old code with manual allocation.
Diffstat (limited to 'searchsummary')
6 files changed, 15 insertions, 34 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp index eb4f1a19e06..d5fdee096b1 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "attributedfw.h" -#include "docsumstate.h" #include "docsumwriter.h" #include "docsum_field_writer_state.h" #include <vespa/eval/eval/value.h> @@ -39,11 +38,6 @@ AttrDFW::AttrDFW(const vespalib::string & attrName) : { } -const attribute::IAttributeVector & -AttrDFW::get_attribute(const GetDocsumsState& s) const { - return *s.getAttribute(getIndex()); -} - namespace { class SingleAttrDFW : public AttrDFW @@ -53,14 +47,11 @@ public: AttrDFW(attrName) { } void insertField(uint32_t docid, GetDocsumsState *state, ResType type, Inserter &target) override; - bool isDefaultValue(uint32_t docid, const GetDocsumsState * state) const override; + bool isDefaultValue(uint32_t docid, const GetDocsumsState * state) const override { + return get_attribute(*state).isUndefined(docid); + } }; -bool SingleAttrDFW::isDefaultValue(uint32_t docid, const GetDocsumsState * state) const -{ - return get_attribute(*state).isUndefined(docid); -} - void SingleAttrDFW::insertField(uint32_t docid, GetDocsumsState * state, ResType type, Inserter &target) { diff --git a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h index cf42dac75c0..35f67fd5446 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h @@ -3,7 +3,7 @@ #pragma once #include "docsumfieldwriter.h" - +#include "docsumstate.h" namespace search { class MatchingElementsFields; } namespace search::attribute { class IAttributeVector; } @@ -27,7 +27,9 @@ class AttrDFW : public ISimpleDFW private: vespalib::string _attrName; protected: - const attribute::IAttributeVector& get_attribute(const GetDocsumsState& s) const; + const attribute::IAttributeVector& get_attribute(const GetDocsumsState& s) const { + return *s.getAttribute(getIndex()); + } const vespalib::string & getAttributeName() const override { return _attrName; } public: AttrDFW(const vespalib::string & attrName); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h index ed43dde1c34..19e22eba4de 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h @@ -18,13 +18,11 @@ class IDocsumFieldWriter public: using UP = std::unique_ptr<IDocsumFieldWriter>; IDocsumFieldWriter() : _index(0) { } - virtual ~IDocsumFieldWriter() {} + virtual ~IDocsumFieldWriter() = default; - static bool IsBinaryCompatible(ResType a, ResType b) - { return ResultConfig::IsBinaryCompatible(a, b); } - - static bool IsRuntimeCompatible(ResType a, ResType b) - { return ResultConfig::IsRuntimeCompatible(a, b); } + static bool IsRuntimeCompatible(ResType a, ResType b) { + return ResultConfig::IsRuntimeCompatible(a, b); + } virtual bool IsGenerated() const = 0; virtual void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, ResType type, @@ -84,5 +82,4 @@ public: vespalib::slime::Inserter &target) override; }; - } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp index e538af3839e..80e57666ad3 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp @@ -24,10 +24,8 @@ namespace search::docsummary { GetDocsumsState::GetDocsumsState(GetDocsumsStateCallback &callback) : _args(), - _docsumbuf(nullptr), - _docsumcnt(0), + _docsumbuf(), _kwExtractor(nullptr), - _keywords(nullptr), _callback(callback), _dynteaser(), _attrCtx(), @@ -53,8 +51,6 @@ GetDocsumsState::GetDocsumsState(GetDocsumsStateCallback &callback) GetDocsumsState::~GetDocsumsState() { - free(_docsumbuf); - free(_keywords); if (_dynteaser._result != nullptr) { juniper::ReleaseResult(_dynteaser._result); } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h index c25aca15200..cb8a6851c33 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h @@ -53,12 +53,8 @@ public: const search::attribute::IAttributeVector * getAttribute(size_t index) const { return _attributes[index]; } GetDocsumArgs _args; // from getdocsums request - - uint32_t *_docsumbuf; // from getdocsums request - uint32_t _docsumcnt; // from getdocsums request - + std::vector<uint32_t> _docsumbuf; // from getdocsums request KeywordExtractor *_kwExtractor; - char *_keywords; // list of keywords from query GetDocsumsStateCallback &_callback; @@ -85,12 +81,12 @@ public: void parse_locations(); // used by SummaryFeaturesDFW - FeatureSet::SP _summaryFeatures; + std::shared_ptr<FeatureSet> _summaryFeatures; bool _summaryFeaturesCached; bool _omit_summary_features; // used by RankFeaturesDFW - FeatureSet::SP _rankFeatures; + std::shared_ptr<FeatureSet> _rankFeatures; // Used by AttributeCombinerDFW and MultiAttrDFW when filtering is enabled std::unique_ptr<search::MatchingElements> _matching_elements; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/getdocsumargs.h b/searchsummary/src/vespa/searchsummary/docsummary/getdocsumargs.h index 9be90aba672..7c346a4b9bb 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/getdocsumargs.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/getdocsumargs.h @@ -4,7 +4,6 @@ #include <vespa/searchlib/fef/properties.h> #include <vespa/searchlib/engine/docsumrequest.h> -#include <vespa/searchlib/engine/propertiesmap.h> namespace search::docsummary { |