mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-07 12:01:16 +00:00
up
This commit is contained in:
@@ -25,6 +25,7 @@ class YAML_CPP_API memory {
|
|||||||
memory() : m_nodes{} {}
|
memory() : m_nodes{} {}
|
||||||
node& create_node();
|
node& create_node();
|
||||||
void merge(const memory& rhs);
|
void merge(const memory& rhs);
|
||||||
|
size_t size() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
using Nodes = std::set<shared_node>;
|
using Nodes = std::set<shared_node>;
|
||||||
|
@@ -9,6 +9,10 @@ void memory_holder::merge(memory_holder& rhs) {
|
|||||||
if (m_pMemory == rhs.m_pMemory)
|
if (m_pMemory == rhs.m_pMemory)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (m_pMemory->size() < rhs.m_pMemory->size()) {
|
||||||
|
std::swap(m_pMemory, rhs.m_pMemory);
|
||||||
|
}
|
||||||
|
|
||||||
m_pMemory->merge(*rhs.m_pMemory);
|
m_pMemory->merge(*rhs.m_pMemory);
|
||||||
rhs.m_pMemory = m_pMemory;
|
rhs.m_pMemory = m_pMemory;
|
||||||
}
|
}
|
||||||
@@ -22,5 +26,9 @@ node& memory::create_node() {
|
|||||||
void memory::merge(const memory& rhs) {
|
void memory::merge(const memory& rhs) {
|
||||||
m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end());
|
m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t memory::size() const {
|
||||||
|
return m_nodes.size();
|
||||||
|
}
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
} // namespace YAML
|
} // namespace YAML
|
||||||
|
Reference in New Issue
Block a user