From 3213df1ac69ecdd1a12f191c567c33df88c0284a Mon Sep 17 00:00:00 2001 From: Kal Conley Date: Mon, 13 Jun 2016 06:57:58 +0200 Subject: [PATCH] Change insert_map_pair to always append Always append in insert_map_pair even if the key is already present. This breaks the behavior of force_insert which now always inserts KVs even if the key is already present. The first insert for duplicated keys now takes precedence for lookups. --- src/node_data.cpp | 13 +------------ test/node/node_test.cpp | 4 ++-- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/node_data.cpp b/src/node_data.cpp index 5a9d8b8..77cd465 100644 --- a/src/node_data.cpp +++ b/src/node_data.cpp @@ -256,18 +256,7 @@ void node_data::reset_map() { } void node_data::insert_map_pair(node& key, node& value) { - - bool found = false; - for (auto& entry : m_map) { - if (entry.first == &key) { - entry.second = &value; - found = true; - break; - } - } - if (!found) { - m_map.emplace_back(&key, &value); - } + m_map.emplace_back(&key, &value); if (!key.is_defined() || !value.is_defined()) m_undefinedPairs.emplace_back(&key, &value); diff --git a/test/node/node_test.cpp b/test/node/node_test.cpp index 4105e72..e6e4f9a 100644 --- a/test/node/node_test.cpp +++ b/test/node/node_test.cpp @@ -95,8 +95,8 @@ TEST(NodeTest, MapForceInsert) { node.force_insert(k2, v2); EXPECT_EQ("v1", node["k1"].as()); - EXPECT_EQ("v2", node["k2"].as()); - EXPECT_EQ(2, node.size()); + EXPECT_EQ("v1", node["k2"].as()); + EXPECT_EQ(3, node.size()); } TEST(NodeTest, UndefinedConstNodeWithFallback) {