diff --git a/include/yaml-cpp/node/impl.h b/include/yaml-cpp/node/impl.h index f5e7b34..5430b9d 100644 --- a/include/yaml-cpp/node/impl.h +++ b/include/yaml-cpp/node/impl.h @@ -138,9 +138,14 @@ namespace YAML inline void Node::AssignNode(const Node& rhs) { - EnsureNodeExists(); rhs.EnsureNodeExists(); + if(!m_pNode) { + m_pNode = rhs.m_pNode; + m_pMemory = rhs.m_pMemory; + return; + } + m_pNode->set_ref(*rhs.m_pNode); m_pMemory->merge(*rhs.m_pMemory); m_pNode = rhs.m_pNode;