summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-08-07 16:19:34 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-08-07 16:19:34 +0000
commitb5a9416c8546f0bf8c5e59d64ea1e4102f5eec84 (patch)
treeff7e489203bf248fcb45a388aa42dd322085b5c4 /storage
parentdc10b82a2e54294752f85c4949229424a07cbe94 (diff)
Do not compute the hash on temporary sets. Wait till done.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/persistence/fieldvisitor.cpp4
-rw-r--r--storage/src/vespa/storage/persistence/fieldvisitor.h9
2 files changed, 7 insertions, 6 deletions
diff --git a/storage/src/vespa/storage/persistence/fieldvisitor.cpp b/storage/src/vespa/storage/persistence/fieldvisitor.cpp
index df9d3df6379..a544105be68 100644
--- a/storage/src/vespa/storage/persistence/fieldvisitor.cpp
+++ b/storage/src/vespa/storage/persistence/fieldvisitor.cpp
@@ -6,10 +6,10 @@
namespace storage {
-FieldVisitor::~FieldVisitor() {}
+FieldVisitor::~FieldVisitor() = default;
void FieldVisitor::visitFieldValueNode(const document::select::FieldValueNode & node) {
- _fields.insert(_docType.getField(node.getRealFieldName()));
+ _fields.insertField(_docType.getField(node.getRealFieldName()));
}
void FieldVisitor::visitComparison(const document::select::Compare & node) {
diff --git a/storage/src/vespa/storage/persistence/fieldvisitor.h b/storage/src/vespa/storage/persistence/fieldvisitor.h
index 4b47c68e33b..d34b7049b88 100644
--- a/storage/src/vespa/storage/persistence/fieldvisitor.h
+++ b/storage/src/vespa/storage/persistence/fieldvisitor.h
@@ -19,14 +19,15 @@ private:
document::FieldCollection _fields;
public:
- FieldVisitor(const document::DocumentType & docType)
+ explicit FieldVisitor(const document::DocumentType & docType)
: _docType(docType),
_fields(_docType)
{}
- ~FieldVisitor();
+ ~FieldVisitor() override;
- const document::FieldSet & getFieldSet() {
- return _fields;
+ document::FieldCollection getFieldSet() {
+ _fields.complete();
+ return std::move(_fields);
}
void visitFieldValueNode(const document::select::FieldValueNode &) override;