diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-08 20:32:49 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-08 20:32:49 +0200 |
commit | d1dcedaccfd5adfd661724476003410d5d251756 (patch) | |
tree | 076b2626cd294e8eaf8bdd1bc87e167b41edab83 | |
parent | 6dd5d6df71acc5eacab5ef2e1b500b123ede4254 (diff) |
experimental session-save speedup
property order is not important,
unordered_map lookup and insertion is O(1)
-rw-r--r-- | libs/pbd/pbd/xml++.h | 4 | ||||
-rw-r--r-- | libs/pbd/xml++.cc | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libs/pbd/pbd/xml++.h b/libs/pbd/pbd/xml++.h index 8e0e015870..7b8649873a 100644 --- a/libs/pbd/pbd/xml++.h +++ b/libs/pbd/pbd/xml++.h @@ -29,7 +29,7 @@ #include <string> #include <list> -#include <map> +#include <unordered_map> #include <cstdio> #include <cstdarg> @@ -50,7 +50,7 @@ typedef XMLNodeList::const_iterator XMLNodeConstIterator; typedef std::list<XMLProperty*> XMLPropertyList; typedef XMLPropertyList::iterator XMLPropertyIterator; typedef XMLPropertyList::const_iterator XMLPropertyConstIterator; -typedef std::map<std::string, XMLProperty*> XMLPropertyMap; +typedef std::unordered_map<std::string, XMLProperty*> XMLPropertyMap; class LIBPBD_API XMLTree { public: diff --git a/libs/pbd/xml++.cc b/libs/pbd/xml++.cc index 963531c5f5..cc583fe86e 100644 --- a/libs/pbd/xml++.cc +++ b/libs/pbd/xml++.cc @@ -408,7 +408,7 @@ XMLProperty* XMLNode::property(const char* n) { string ns(n); - map<string,XMLProperty*>::iterator iter; + unordered_map<string,XMLProperty*>::iterator iter; if ((iter = _propmap.find(ns)) != _propmap.end()) { return iter->second; @@ -420,7 +420,7 @@ XMLNode::property(const char* n) XMLProperty* XMLNode::property(const string& ns) { - map<string,XMLProperty*>::iterator iter; + unordered_map<string,XMLProperty*>::iterator iter; if ((iter = _propmap.find(ns)) != _propmap.end()) { return iter->second; @@ -433,7 +433,7 @@ XMLProperty* XMLNode::add_property(const char* n, const string& v) { string ns(n); - map<string,XMLProperty*>::iterator iter; + unordered_map<string,XMLProperty*>::iterator iter; if ((iter = _propmap.find(ns)) != _propmap.end()) { iter->second->set_value (v); |