diff --git a/core/ConVarManager.cpp b/core/ConVarManager.cpp index 01a1a1f6..f2d018e3 100644 --- a/core/ConVarManager.cpp +++ b/core/ConVarManager.cpp @@ -304,14 +304,19 @@ void ConVarManager::OnPluginUnloaded(IPlugin *plugin) delete pConVarList; } + const IPluginRuntime * pRuntime = plugin->GetRuntime(); + /* Remove convar queries for this plugin that haven't returned results yet */ - for (iter = m_ConVarQueries.begin(); iter != m_ConVarQueries.end(); iter++) + for (iter = m_ConVarQueries.begin(); iter != m_ConVarQueries.end();) { ConVarQuery &query = (*iter); - if (query.pCallback->GetParentRuntime() == plugin->GetRuntime()) + if (query.pCallback->GetParentRuntime() == pRuntime) { - m_ConVarQueries.erase(iter); + iter = m_ConVarQueries.erase(iter); + continue; } + + ++iter; } } diff --git a/core/ForwardSys.cpp b/core/ForwardSys.cpp index 40a5f642..52a97f6e 100644 --- a/core/ForwardSys.cpp +++ b/core/ForwardSys.cpp @@ -681,7 +681,7 @@ bool CForward::RemoveFunction(IPluginFunction *func) lst = &m_paused; } - for (iter=m_functions.begin(); iter!=m_functions.end(); iter++) + for (iter=lst->begin(); iter!=lst->end(); iter++) { if ((*iter) == func) { diff --git a/core/logic/PluginSys.cpp b/core/logic/PluginSys.cpp index 5cbdb6f7..cc14a1e8 100644 --- a/core/logic/PluginSys.cpp +++ b/core/logic/PluginSys.cpp @@ -2605,10 +2605,12 @@ SMPlugin *CPluginManager::FindPluginByConsoleArg(const char *arg) smcore.Format(pluginfile, sizeof(pluginfile), "%s%s", arg, ext); CPlugin **pluginpp = m_LoadLookup.retrieve(pluginfile); - if (!pluginpp || !*pluginpp) + if (!pluginpp) { return NULL; } + + pl = *pluginpp; } return pl; diff --git a/extensions/updater/md5.cpp b/extensions/updater/md5.cpp index 8738c6df..c891c5c5 100644 --- a/extensions/updater/md5.cpp +++ b/extensions/updater/md5.cpp @@ -171,14 +171,13 @@ MD5::MD5(FILE *file){ unsigned char *MD5::raw_digest(){ - uint1 *s = new uint1[16]; - if (!finalized){ /* cerr << "MD5::raw_digest: Can't get digest if you haven't "<< "finalized the digest!" <