Fixed various memory issues. (bug 5766, r=asherkin)

This commit is contained in:
Kyle Sanderson
2013-08-12 00:44:22 +01:00
parent 3d4e1ffd64
commit 86c699dd36
6 changed files with 18 additions and 14 deletions
+8 -3
View File
@@ -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;
}
}
+1 -1
View File
@@ -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)
{
+3 -1
View File
@@ -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;