| #include "yaml-cpp/node/detail/memory.h" | |
| #include "yaml-cpp/node/detail/node.h" // IWYU pragma: keep | |
| #include "yaml-cpp/node/ptr.h" | |
| namespace YAML { | |
| namespace detail { | |
| void memory_holder::merge(memory_holder& rhs) { | |
| if (m_pMemory == rhs.m_pMemory) | |
| return; | |
| if (m_pMemory->size() < rhs.m_pMemory->size()) { | |
| std::swap(m_pMemory, rhs.m_pMemory); | |
| } | |
| m_pMemory->merge(*rhs.m_pMemory); | |
| rhs.m_pMemory = m_pMemory; | |
| } | |
| node& memory::create_node() { | |
| shared_node pNode(new node); | |
| m_nodes.insert(pNode); | |
| return *pNode; | |
| } | |
| void memory::merge(const memory& rhs) { | |
| m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end()); | |
| } | |
| size_t memory::size() const { | |
| return m_nodes.size(); | |
| } | |
| } // namespace detail | |
| } // namespace YAML |