diff --git a/core/src/objects/base/instance.cpp b/core/src/objects/base/instance.cpp index d28801d..b77367d 100644 --- a/core/src/objects/base/instance.cpp +++ b/core/src/objects/base/instance.cpp @@ -261,6 +261,7 @@ std::vector Instance::GetProperties() { // Serialization void Instance::Serialize(pugi::xml_node parent, RefStateSerialize state) { + if (state == nullptr) state = std::make_shared<__RefStateSerialize>(); pugi::xml_node node = parent.append_child("Item"); node.append_attribute("class").set_value(this->GetClass()->className); @@ -313,6 +314,7 @@ void Instance::Serialize(pugi::xml_node parent, RefStateSerialize state) { } result, NoSuchInstance> Instance::Deserialize(pugi::xml_node node, RefStateDeserialize state) { + if (state == nullptr) state = std::make_shared<__RefStateDeserialize>(); std::string className = node.attribute("class").value(); if (INSTANCE_MAP.count(className) == 0) { return NoSuchInstance(className); @@ -433,6 +435,7 @@ DescendantsIterator::self_type DescendantsIterator::operator++(int _) { } std::optional> Instance::Clone(RefStateClone state) { + if (state == nullptr) state = std::make_shared<__RefStateClone>(); std::shared_ptr newInstance = GetClass()->constructor(); // Copy properties diff --git a/core/src/objects/base/instance.h b/core/src/objects/base/instance.h index 5d1ee14..122370e 100644 --- a/core/src/objects/base/instance.h +++ b/core/src/objects/base/instance.h @@ -133,9 +133,9 @@ public: } // Serialization - void Serialize(pugi::xml_node parent, RefStateSerialize state = std::make_shared<__RefStateSerialize>()); - static result, NoSuchInstance> Deserialize(pugi::xml_node node, RefStateDeserialize state = std::make_shared<__RefStateDeserialize>()); - std::optional> Clone(RefStateClone state = std::make_shared<__RefStateClone>()); + void Serialize(pugi::xml_node parent, RefStateSerialize state = {}); + static result, NoSuchInstance> Deserialize(pugi::xml_node node, RefStateDeserialize state = {}); + std::optional> Clone(RefStateClone state = {}); }; // https://gist.github.com/jeetsukumaran/307264