aboutsummaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-06-21 07:26:30 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-06-21 07:26:30 +0000
commitacb8b74bb3aef4def0c18231910f11532ab5053f (patch)
treec79c8c201505ea050411199ff6643f516a8d5ab8 /searchsummary
parentfc1604631cb71e1df1affb4c0980b9d166501ccd (diff)
Inline return AttrDFW::get_attribute() and clean up some old code with manual allocation.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/attributedfw.cpp15
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/attributedfw.h6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.h11
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumstate.cpp6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumstate.h10
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/getdocsumargs.h1
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 {