Replaced most std::map's with std::unordered_map's for more scalability.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user