diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-22 11:47:54 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-22 11:47:54 +0200 |
commit | be11fc0adb411f7ff2b13cdee911620bc5ba0d76 (patch) | |
tree | ade557eaeedc7be06f6620e2643e725ae0f1d2a8 /searchlib | |
parent | 08c2a0490261a4666b65882616756ecfbe1c8c9b (diff) |
Move instead of copy.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/aggregation/group.cpp | 10 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/aggregation/group.h | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/searchlib/src/vespa/searchlib/aggregation/group.cpp b/searchlib/src/vespa/searchlib/aggregation/group.cpp index 6eb131fe77d..4172de3c086 100644 --- a/searchlib/src/vespa/searchlib/aggregation/group.cpp +++ b/searchlib/src/vespa/searchlib/aggregation/group.cpp @@ -206,10 +206,10 @@ Group & Group::operator = (const Group & rhs) = default; Group::~Group() { } Group & -Group::partialCopy(const Group & rhs) { +Group::partialMove(Group &rhs) { setId(*rhs._id); _rank = rhs._rank; - _aggr.partialCopy(rhs._aggr); + _aggr.partialMove(rhs._aggr); return *this; } @@ -373,7 +373,7 @@ void Group::Value::mergeLevel(const Group & protoType, const Value & b) { for (ChildP *it(b._children), *mt(b._children + b.getChildrenSize()); it != mt; ++it) { ChildP g(new Group(protoType)); - g->partialCopy(**it); + g->partialMove(**it); addChild(g); } } @@ -735,10 +735,10 @@ Group::Value::swap(Value & rhs) void -Group::Value::partialCopy(const Value & rhs) { +Group::Value::partialMove(Value &rhs) { uint32_t totalAggrSize = getAggrSize() + getExprSize(); for(size_t i(0), m(totalAggrSize); i < m; i++) { - _aggregationResults[i] = rhs._aggregationResults[i]; + _aggregationResults[i] = std::move(rhs._aggregationResults[i]); } for(size_t i(0), m(getAggrSize()); i < m; i++) { getAggr(i)->reset(); diff --git a/searchlib/src/vespa/searchlib/aggregation/group.h b/searchlib/src/vespa/searchlib/aggregation/group.h index b34bd0fc88a..80db20015d3 100644 --- a/searchlib/src/vespa/searchlib/aggregation/group.h +++ b/searchlib/src/vespa/searchlib/aggregation/group.h @@ -102,7 +102,7 @@ private: void merge(const GroupingLevelList & levels, uint32_t firstLevel, uint32_t currentLevel, const Value & rhs); void prune(const Value & b, uint32_t lastLevel, uint32_t currentLevel); void postMerge(const std::vector<GroupingLevel> &levels, uint32_t firstLevel, uint32_t currentLevel); - void partialCopy(const Value & rhs); + void partialMove(Value &rhs); VESPA_DLL_LOCAL Group * groupSingle(const ResultNode & selectResult, HitRank rank, const GroupingLevel & level); GroupList groups() const { return _children; } @@ -167,7 +167,7 @@ private: RawRank _rank; // The default rank taken from the highest hit relevance. Value _aggr; - Group & partialCopy(const Group & rhs); + Group & partialMove(Group &rhs); template <typename Doc> VESPA_DLL_LOCAL void groupNext(const GroupingLevel & level, const Doc & docId, HitRank rank); |