diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-23 00:08:21 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-23 00:08:21 +0100 |
commit | 163ba724c52eb4d7364baa85cbd55c82f6594cad (patch) | |
tree | 1c71d2ab02455d7df09cd918b61adceae55fe559 /streamingvisitors | |
parent | 53f09660891181825dbd3364c63b0da304a21968 (diff) |
Avoid creating objects not needed.
Diffstat (limited to 'streamingvisitors')
4 files changed, 16 insertions, 12 deletions
diff --git a/streamingvisitors/src/tests/querywrapper/querywrapper.cpp b/streamingvisitors/src/tests/querywrapper/querywrapper.cpp index 741ef31ca3a..46fb90a51e8 100644 --- a/streamingvisitors/src/tests/querywrapper/querywrapper.cpp +++ b/streamingvisitors/src/tests/querywrapper/querywrapper.cpp @@ -1,4 +1,5 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + #include <vespa/vespalib/testkit/testapp.h> #include <vespa/searchlib/query/tree/querybuilder.h> #include <vespa/searchlib/query/tree/simplequery.h> @@ -23,7 +24,7 @@ public: void QueryWrapperTest::testQueryWrapper() { - EmptyQueryNodeResult empty; + QueryNodeResultFactory empty; PhraseQueryNode * null = NULL; { QueryBuilder<SimpleQueryNodeTypes> builder; diff --git a/streamingvisitors/src/vespa/searchvisitor/querytermdata.cpp b/streamingvisitors/src/vespa/searchvisitor/querytermdata.cpp index 2cabc36ea96..0f40277bb86 100644 --- a/streamingvisitors/src/vespa/searchvisitor/querytermdata.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/querytermdata.cpp @@ -6,7 +6,5 @@ using namespace search::fef; namespace storage { -IMPLEMENT_DUPLICATE(QueryTermData); - } // namespace storage diff --git a/streamingvisitors/src/vespa/searchvisitor/querytermdata.h b/streamingvisitors/src/vespa/searchvisitor/querytermdata.h index ef6d96e6e39..5f54146ede1 100644 --- a/streamingvisitors/src/vespa/searchvisitor/querytermdata.h +++ b/streamingvisitors/src/vespa/searchvisitor/querytermdata.h @@ -15,16 +15,21 @@ class QueryTermData : public search::QueryNodeResultBase { private: search::fef::SimpleTermData _termData; - public: - DUPLICATE(QueryTermData); // create duplicate function - - virtual bool evaluate() const { return true; } - virtual void reset() {} - virtual bool getRewriteFloatTerms() const { return true; } - + QueryTermData * clone() const override { return new QueryTermData(); } + bool evaluate() const override { return true; } + void reset() override { } search::fef::SimpleTermData &getTermData() { return _termData; } }; +class QueryTermDataFactory final : public search::QueryNodeResultFactory { +public: + std::unique_ptr<search::QueryNodeResultBase> create() const override { + return std::make_unique<QueryTermData>(); + } + bool getRewriteFloatTerms() const override { return true; } +}; + + } // namespace storage diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp index cf39afff088..c2bac2f6820 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp @@ -286,8 +286,8 @@ void SearchVisitor::init(const Parameters & params) Parameters::ValueRef queryBlob; if ( params.get("query", queryBlob) ) { LOG(spam, "Received query blob of %zd bytes", queryBlob.size()); - QueryTermData resultAddOn; - _query = search::Query(resultAddOn, search::QueryPacketT(queryBlob.data(), queryBlob.size())); + QueryTermDataFactory addOnFactory; + _query = search::Query(addOnFactory, search::QueryPacketT(queryBlob.data(), queryBlob.size())); LOG(debug, "Query tree: '%s'", _query.asString().c_str()); _searchBuffer->reserve(0x10000); |