File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed
include/yaml-cpp/node/detail Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ class YAML_CPP_API memory {
2525 memory () : m_nodes{} {}
2626 node& create_node ();
2727 void merge (const memory& rhs);
28+ size_t size () const ;
2829
2930 private:
3031 using Nodes = std::set<shared_node>;
Original file line number Diff line number Diff line change @@ -9,6 +9,10 @@ void memory_holder::merge(memory_holder& rhs) {
99 if (m_pMemory == rhs.m_pMemory )
1010 return ;
1111
12+ if (m_pMemory->size () < rhs.m_pMemory ->size ()) {
13+ std::swap (m_pMemory, rhs.m_pMemory );
14+ }
15+
1216 m_pMemory->merge (*rhs.m_pMemory );
1317 rhs.m_pMemory = m_pMemory;
1418}
@@ -22,5 +26,9 @@ node& memory::create_node() {
2226void memory::merge (const memory& rhs) {
2327 m_nodes.insert (rhs.m_nodes .begin (), rhs.m_nodes .end ());
2428}
29+
30+ size_t memory::size () const {
31+ return m_nodes.size ();
32+ }
2533} // namespace detail
2634} // namespace YAML
You can’t perform that action at this time.
0 commit comments