Replaced most std::map's with std::unordered_map's for more scalability.

This commit is contained in:
2013-04-24 18:12:03 -07:00
parent 0c67ffbbd1
commit 9ef3f4590f
33 changed files with 130 additions and 85 deletions

View File

@@ -30,6 +30,7 @@
//
#include "KRUnknownManager.h"
#include <unordered_map>
KRUnknownManager::KRUnknownManager(KRContext &context) : KRContextObject(context)
{
@@ -38,8 +39,8 @@ KRUnknownManager::KRUnknownManager(KRContext &context) : KRContextObject(context
KRUnknownManager::~KRUnknownManager()
{
for(map<std::string, map<std::string, KRUnknown *> >::iterator extension_itr = m_unknowns.begin(); extension_itr != m_unknowns.end(); extension_itr++) {
for(map<std::string, KRUnknown *>::iterator name_itr=(*extension_itr).second.begin(); name_itr != (*extension_itr).second.end(); name_itr++) {
for(unordered_map<std::string, unordered_map<std::string, KRUnknown *> >::iterator extension_itr = m_unknowns.begin(); extension_itr != m_unknowns.end(); extension_itr++) {
for(unordered_map<std::string, KRUnknown *>::iterator name_itr=(*extension_itr).second.begin(); name_itr != (*extension_itr).second.end(); name_itr++) {
delete (*name_itr).second;
}
}
@@ -53,13 +54,13 @@ void KRUnknownManager::add(KRUnknown *unknown)
std::transform(lower_name.begin(), lower_name.end(), lower_name.begin(), ::tolower);
std::transform(lower_extension.begin(), lower_extension.end(), lower_extension.begin(), ::tolower);
map<std::string, map<std::string, KRUnknown *> >::iterator extension_itr = m_unknowns.find(lower_extension);
unordered_map<std::string, unordered_map<std::string, KRUnknown *> >::iterator extension_itr = m_unknowns.find(lower_extension);
if(extension_itr == m_unknowns.end()) {
m_unknowns[lower_extension] = map<std::string, KRUnknown *>();
m_unknowns[lower_extension] = unordered_map<std::string, KRUnknown *>();
extension_itr = m_unknowns.find(lower_extension);
}
map<std::string, KRUnknown *>::iterator name_itr = (*extension_itr).second.find(lower_name);
unordered_map<std::string, KRUnknown *>::iterator name_itr = (*extension_itr).second.find(lower_name);
if(name_itr != (*extension_itr).second.end()) {
delete (*name_itr).second;
(*name_itr).second = unknown;
@@ -87,7 +88,7 @@ KRUnknown *KRUnknownManager::get(const std::string &name, const std::string &ext
}
const map<std::string, KRUnknown *> &KRUnknownManager::get(const std::string &extension)
const unordered_map<std::string, KRUnknown *> &KRUnknownManager::get(const std::string &extension)
{
std::string lower_extension = extension;
std::transform(lower_extension.begin(), lower_extension.end(), lower_extension.begin(), ::tolower);