summaryrefslogtreecommitdiff
path: root/src/nodedef.cpp
diff options
context:
space:
mode:
authorgregorycu <gregory.currie@gmail.com>2016-10-09 00:08:35 +1100
committerNer'zhul <nerzhul@users.noreply.github.com>2016-10-08 15:57:36 +0200
commit9393e4a0a8e32905d32a9dc58131218aee318686 (patch)
treee7e112dd7a4a24492add8690fc50113c287aa7ca /src/nodedef.cpp
parent3de9ae4e6054bb420bea8ad5621a0b76552a3621 (diff)
downloadminetest-9393e4a0a8e32905d32a9dc58131218aee318686.tar.gz
minetest-9393e4a0a8e32905d32a9dc58131218aee318686.tar.bz2
minetest-9393e4a0a8e32905d32a9dc58131218aee318686.zip
Speed up emerge thread by using unordered map in a few places. Looking at 25% speedup in Emerge thread on Just Test.
Diffstat (limited to 'src/nodedef.cpp')
-rw-r--r--src/nodedef.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp
index fa2e621f2..39ea1a60e 100644
--- a/src/nodedef.cpp
+++ b/src/nodedef.cpp
@@ -810,12 +810,12 @@ private:
// item aliases too. Updated by updateAliases()
// Note: Not serialized.
- std::map<std::string, content_t> m_name_id_mapping_with_aliases;
+ UNORDERED_MAP<std::string, content_t> m_name_id_mapping_with_aliases;
// A mapping from groups to a list of content_ts (and their levels)
// that belong to it. Necessary for a direct lookup in getIds().
// Note: Not serialized.
- std::map<std::string, GroupItems> m_group_to_items;
+ UNORDERED_MAP<std::string, GroupItems> m_group_to_items;
// Next possibly free id
content_t m_next_id;
@@ -938,7 +938,7 @@ inline const ContentFeatures& CNodeDefManager::get(const MapNode &n) const
bool CNodeDefManager::getId(const std::string &name, content_t &result) const
{
- std::map<std::string, content_t>::const_iterator
+ UNORDERED_MAP<std::string, content_t>::const_iterator
i = m_name_id_mapping_with_aliases.find(name);
if(i == m_name_id_mapping_with_aliases.end())
return false;
@@ -968,7 +968,7 @@ bool CNodeDefManager::getIds(const std::string &name,
}
std::string group = name.substr(6);
- std::map<std::string, GroupItems>::const_iterator
+ UNORDERED_MAP<std::string, GroupItems>::const_iterator
i = m_group_to_items.find(group);
if (i == m_group_to_items.end())
return true;
@@ -1050,7 +1050,7 @@ content_t CNodeDefManager::set(const std::string &name, const ContentFeatures &d
i != def.groups.end(); ++i) {
std::string group_name = i->first;
- std::map<std::string, GroupItems>::iterator
+ UNORDERED_MAP<std::string, GroupItems>::iterator
j = m_group_to_items.find(group_name);
if (j == m_group_to_items.end()) {
m_group_to_items[group_name].push_back(
@@ -1086,7 +1086,7 @@ void CNodeDefManager::removeNode(const std::string &name)
}
// Erase node content from all groups it belongs to
- for (std::map<std::string, GroupItems>::iterator iter_groups =
+ for (UNORDERED_MAP<std::string, GroupItems>::iterator iter_groups =
m_group_to_items.begin();
iter_groups != m_group_to_items.end();) {
GroupItems &items = iter_groups->second;