summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-24 23:10:41 +0200
committerGitHub <noreply@github.com>2017-08-24 23:10:41 +0200
commitfb615e711a3771d9fad2935661e3be8ae5a8c6bf (patch)
tree787197f5d401ad283fb1cdb3d6a395e11f6c4291 /searchlib
parent732e00a7c5b938219b6f6387ba45a979ec200210 (diff)
parentf55366b12358d1f643afa189e8fcc6df178784fe (diff)
Merge pull request #3184 from vespa-engine/balder/move-instead-of-copy
Balder/move instead of copy
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/group.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/group.h6
2 files changed, 8 insertions, 8 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..32b9696e7f8 100644
--- a/searchlib/src/vespa/searchlib/aggregation/group.h
+++ b/searchlib/src/vespa/searchlib/aggregation/group.h
@@ -64,7 +64,7 @@ public:
size_t operator() (const ResultNode & arg) const { return arg.hash(); }
};
- typedef std::vector<GroupingLevel> GroupingLevelList;
+ using GroupingLevelList = std::vector<GroupingLevel>;
private:
@@ -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);