diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-07-25 20:09:18 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-07-31 17:04:17 +0200 |
commit | 5d556da6996ba3fd81d6bfb8a48ef25428978eee (patch) | |
tree | 6cd8d12001582d51b03f624cf86bc9c76cd0386f /document | |
parent | ed86958cf65226a246cf4b8532e5f5e904a4b05d (diff) |
We have already made the desicion to keep the datatypes alive with the DocumentTypeRepo. So let us stick to that.
Diffstat (limited to 'document')
-rw-r--r-- | document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp | 13 | ||||
-rw-r--r-- | document/src/vespa/document/fieldvalue/fieldvalue.cpp | 6 |
2 files changed, 3 insertions, 16 deletions
diff --git a/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp b/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp index 85fd031ac10..194c9b422da 100644 --- a/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp @@ -282,17 +282,4 @@ ArrayFieldValue::onIterateNested(PathRange nested, IteratorHandler & handler) co using vespalib::ComplexArrayT; using vespalib::PrimitiveArrayT; -namespace { -class FieldValueFactory : public ComplexArrayT<FieldValue>::Factory -{ -public: - FieldValueFactory(DataType::UP dataType) : _dataType(dataType.release()) { } - FieldValue * create() override { return _dataType->createFieldValue().release(); } - FieldValueFactory * clone() const override { return new FieldValueFactory(*this); } -private: - DataType::CP _dataType; -}; - -} - } // document diff --git a/document/src/vespa/document/fieldvalue/fieldvalue.cpp b/document/src/vespa/document/fieldvalue/fieldvalue.cpp index 979a6316e45..1d6f39318c3 100644 --- a/document/src/vespa/document/fieldvalue/fieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/fieldvalue.cpp @@ -221,11 +221,11 @@ namespace { class FieldValueFactory : public ComplexArrayT<FieldValue>::Factory { public: - FieldValueFactory(DataType::UP dataType) : _dataType(dataType.release()) { } + FieldValueFactory(const DataType & dataType) : _dataType(&dataType) { } FieldValue * create() override { return _dataType->createFieldValue().release(); } FieldValueFactory * clone() const override { return new FieldValueFactory(*this); } private: - DataType::CP _dataType; + const DataType * _dataType; }; } @@ -249,7 +249,7 @@ FieldValue::createArray(const DataType & baseType) case DataType::T_BYTE: return std::make_unique<PrimitiveArrayT<ByteFieldValue, FieldValue>>(); default: - return std::make_unique<ComplexArrayT<FieldValue>>(std::make_unique<FieldValueFactory>(DataType::UP(baseType.clone()))); + return std::make_unique<ComplexArrayT<FieldValue>>(std::make_unique<FieldValueFactory>(baseType)); } } |