diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-01-27 22:14:03 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-01-28 14:04:50 +0000 |
commit | a5903ad899e38041cfe20f0acc110bbfd9d21d2b (patch) | |
tree | 93447bc245b1e31d19601a6bb350cd7629ba1523 /document | |
parent | f64c699df04adb4eedd5a159c7e97af65670cda9 (diff) |
Set field directly.
Diffstat (limited to 'document')
3 files changed, 8 insertions, 9 deletions
diff --git a/document/src/vespa/document/fieldvalue/serializablearray.cpp b/document/src/vespa/document/fieldvalue/serializablearray.cpp index 3664554ffcc..080dd16128c 100644 --- a/document/src/vespa/document/fieldvalue/serializablearray.cpp +++ b/document/src/vespa/document/fieldvalue/serializablearray.cpp @@ -26,13 +26,11 @@ public: } -SerializableArray::SerializableArray(EntryMap entries, ByteBuffer buffer, - CompressionConfig::Type comp_type, uint32_t uncompressed_length) - : _entries(std::move(entries)), - _uncompSerData(), - _unlikely() +void +SerializableArray::set(EntryMap entries, ByteBuffer buffer, + CompressionConfig::Type comp_type, uint32_t uncompressed_length) { - + _entries = std::move(entries); if (CompressionConfig::isCompressed(comp_type)) { _unlikely = std::make_unique<RarelyUsedBuffers>(); _unlikely->_compSerData = std::move(buffer); @@ -40,6 +38,7 @@ SerializableArray::SerializableArray(EntryMap entries, ByteBuffer buffer, _unlikely->_uncompressedLength = uncompressed_length; } else { _uncompSerData = std::move(buffer); + _unlikely.reset(); } } diff --git a/document/src/vespa/document/fieldvalue/serializablearray.h b/document/src/vespa/document/fieldvalue/serializablearray.h index 30777d7e337..11186593e76 100644 --- a/document/src/vespa/document/fieldvalue/serializablearray.h +++ b/document/src/vespa/document/fieldvalue/serializablearray.h @@ -89,10 +89,10 @@ public: SerializableArray& operator=(const SerializableArray&); SerializableArray(SerializableArray &&) noexcept; SerializableArray& operator=(SerializableArray &&) noexcept; - SerializableArray(EntryMap entries, ByteBuffer buffer, - CompressionConfig::Type comp_type, uint32_t uncompressed_length); ~SerializableArray(); + void set(EntryMap entries, ByteBuffer buffer, + CompressionConfig::Type comp_type, uint32_t uncompressed_length); /** * Stores a value in the array. * diff --git a/document/src/vespa/document/fieldvalue/structfieldvalue.cpp b/document/src/vespa/document/fieldvalue/structfieldvalue.cpp index 3763a5e3405..bc2dd2a059a 100644 --- a/document/src/vespa/document/fieldvalue/structfieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/structfieldvalue.cpp @@ -67,7 +67,7 @@ StructFieldValue::lazyDeserialize(const FixedTypeRepo &repo, _doc_type = &repo.getDocumentType(); _version = version; - _fields = SerializableArray(std::move(fm), std::move(buffer), comp_type, uncompressed_length); + _fields.set(std::move(fm), std::move(buffer), comp_type, uncompressed_length); _hasChanged = false; } |