From 9c6bd613987550ab9e916eda3efa6a40ee74401b Mon Sep 17 00:00:00 2001 From: beder Date: Sun, 11 Sep 2011 16:56:38 -0500 Subject: [PATCH] Switched the implementation of maps from list to map (but just pointer comparison) --- include/yaml-cpp/node/detail/impl.h | 2 +- include/yaml-cpp/node/detail/node_data.h | 3 +-- include/yaml-cpp/node/detail/node_iterator.h | 5 ++--- src/node/detail/node_data.cpp | 6 +++--- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/include/yaml-cpp/node/detail/impl.h b/include/yaml-cpp/node/detail/impl.h index ab771ce..8f32fbe 100644 --- a/include/yaml-cpp/node/detail/impl.h +++ b/include/yaml-cpp/node/detail/impl.h @@ -54,7 +54,7 @@ namespace YAML node& k = convert_to_node(key, pMemory); node& v = pMemory->create_node(); - m_map.push_back(kv_pair(&k, &v)); + m_map[&k] = &v; return v; } diff --git a/include/yaml-cpp/node/detail/node_data.h b/include/yaml-cpp/node/detail/node_data.h index 64fe77a..515f15b 100644 --- a/include/yaml-cpp/node/detail/node_data.h +++ b/include/yaml-cpp/node/detail/node_data.h @@ -86,8 +86,7 @@ namespace YAML mutable std::size_t m_seqSize; // map - typedef std::pair kv_pair; - typedef std::list node_map; + typedef std::map node_map; node_map m_map; }; } diff --git a/include/yaml-cpp/node/detail/node_iterator.h b/include/yaml-cpp/node/detail/node_iterator.h index 768ee5a..24d398f 100644 --- a/include/yaml-cpp/node/detail/node_iterator.h +++ b/include/yaml-cpp/node/detail/node_iterator.h @@ -10,7 +10,7 @@ #include "yaml-cpp/node/ptr.h" #include #include -#include +#include #include #include @@ -35,8 +35,7 @@ namespace YAML }; typedef std::vector node_seq; - typedef std::pair kv_pair; - typedef std::list node_map; + typedef std::map node_map; template struct node_iterator_type { diff --git a/src/node/detail/node_data.cpp b/src/node/detail/node_data.cpp index bed657c..94a3a5a 100644 --- a/src/node/detail/node_data.cpp +++ b/src/node/detail/node_data.cpp @@ -166,7 +166,7 @@ namespace YAML if(m_type != NodeType::Map) throw std::runtime_error("Can't insert into a non-map node"); - m_map.push_back(kv_pair(&key, &value)); + m_map[&key] = &value; } // indexing @@ -205,7 +205,7 @@ namespace YAML } node& value = pMemory->create_node(); - m_map.push_back(kv_pair(&key, &value)); + m_map[&key] = &value; return value; } @@ -246,7 +246,7 @@ namespace YAML node& key = pMemory->create_node(); key.set_scalar(stream.str()); - m_map.push_back(kv_pair(&key, m_sequence[i])); + m_map[&key] = m_sequence[i]; } reset_sequence();