Switched Node::operator=(const Node&) to *not* force itself to create its node first (since we're just assigning them)

This commit is contained in:
beder
2011-09-12 22:05:43 -05:00
parent 04152dae8f
commit 78ebd14551

View File

@@ -138,9 +138,14 @@ namespace YAML
inline void Node::AssignNode(const Node& rhs) inline void Node::AssignNode(const Node& rhs)
{ {
EnsureNodeExists();
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_pNode->set_ref(*rhs.m_pNode);
m_pMemory->merge(*rhs.m_pMemory); m_pMemory->merge(*rhs.m_pMemory);
m_pNode = rhs.m_pNode; m_pNode = rhs.m_pNode;