diff -r 36001e8ab4d0 -r ce1f369ba889 core/systems/ForwardSys.cpp --- a/core/systems/ForwardSys.cpp Fri Mar 16 22:50:27 2007 +0000 +++ b/core/systems/ForwardSys.cpp Sat Mar 17 00:55:46 2007 +0000 @@ -32,17 +32,22 @@ // :TODO: IMPORTANT!!! The result pointer arg in the execute function maybe invalid if the forward fails // so later evaluation of this result may cause problems on higher levels of abstraction. DOCUMENT OR FIX ALL FORWARDS! +CForwardManager::~CForwardManager() +{ + CStack::iterator iter; + for (iter=m_FreeForwards.begin(); iter!=m_FreeForwards.end(); iter++) + { + delete (*iter); + } + m_FreeForwards.popall(); +} + void CForwardManager::OnSourceModAllInitialized() { g_PluginSys.AddPluginsListener(this); g_ShareSys.AddInterface(NULL, this); } -void CForwardManager::OnSourceModShutdown() -{ - g_PluginSys.RemovePluginsListener(this); -} - IForward *CForwardManager::CreateForward(const char *name, ExecType et, unsigned int num_params, const ParamType *types, ...) { CForward *fwd;