Change node_map type from map<ptr,ptr> to vector<pair<ptr,ptr>> (#386)

* Change node_map type from map<ptr,ptr> to vector<pair<ptr,ptr>>

Map nodes are now iterated over in document order.

* 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.
This commit is contained in:
c0nk
2016-07-18 15:54:10 +02:00
committed by Jesse Beder
parent f74ae543b4
commit f0b15cd6a0
4 changed files with 7 additions and 6 deletions

View File

@@ -256,9 +256,10 @@ void node_data::reset_map() {
}
void node_data::insert_map_pair(node& key, node& value) {
m_map[&key] = &value;
m_map.emplace_back(&key, &value);
if (!key.is_defined() || !value.is_defined())
m_undefinedPairs.push_back(kv_pair(&key, &value));
m_undefinedPairs.emplace_back(&key, &value);
}
void node_data::convert_to_map(shared_memory_holder pMemory) {