summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-02-23 00:08:21 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-02-23 00:08:21 +0100
commit163ba724c52eb4d7364baa85cbd55c82f6594cad (patch)
tree1c71d2ab02455d7df09cd918b61adceae55fe559 /streamingvisitors
parent53f09660891181825dbd3364c63b0da304a21968 (diff)
Avoid creating objects not needed.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/tests/querywrapper/querywrapper.cpp3
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/querytermdata.cpp2
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/querytermdata.h19
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp4
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);