Fix a possible crash on close due to INANDContentLoader objects getting deleted twice

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4463 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman
2009-10-25 02:03:45 +00:00
parent 1ce145e86e
commit 73fda8cfbf
3 changed files with 14 additions and 22 deletions

View File

@ -164,7 +164,7 @@ CNANDContentLoader::CNANDContentLoader(const std::string& _rName)
}
else
{
// _dbg_assert_msg_(BOOT, 0, "CNANDContentLoader loads neither folder nor file");
_dbg_assert_msg_(BOOT, 0, "CNANDContentLoader loads neither folder nor file");
}
}
@ -362,14 +362,12 @@ CNANDContentManager::~CNANDContentManager()
const INANDContentLoader& CNANDContentManager::GetNANDLoader(const std::string& _rName)
{
std::string KeyString(_rName);
CNANDContentMap::iterator lb = m_Map.lower_bound(_rName);
CNANDContentMap::iterator itr = m_Map.find(KeyString);
if (itr != m_Map.end())
return *itr->second;
if(lb == m_Map.end() || (m_Map.key_comp()(_rName, lb->first)))
m_Map.insert(lb, CNANDContentMap::value_type(_rName, new CNANDContentLoader(_rName)));
m_Map[KeyString] = new CNANDContentLoader(KeyString);
return *m_Map[KeyString];
return *m_Map[_rName];
}
} // namespace end