1.1 --- a/core/systems/PluginSys.cpp Fri Dec 15 13:45:21 2006 +0000
1.2 +++ b/core/systems/PluginSys.cpp Fri Dec 15 13:53:58 2006 +0000
1.3 @@ -444,7 +444,7 @@
1.4 * PLUGIN ITERATOR *
1.5 *******************/
1.6
1.7 -CPluginManager::CPluginIterator::CPluginIterator(List<IPlugin *> *_mylist)
1.8 +CPluginManager::CPluginIterator::CPluginIterator(List<CPlugin *> *_mylist)
1.9 {
1.10 mylist = _mylist;
1.11 }
1.12 @@ -495,7 +495,7 @@
1.13 }
1.14
1.15
1.16 -void CPluginManager::LoadAll_FirstPass( const char *config, const char *basedir )
1.17 +void CPluginManager::LoadAll_FirstPass(const char *config, const char *basedir)
1.18 {
1.19 /* First read in the database of plugin settings */
1.20 SMCParseError err;
1.21 @@ -730,6 +730,21 @@
1.22 }
1.23 }
1.24
1.25 +void CPluginManager::LoadAll_SecondPass()
1.26 +{
1.27 + List<CPlugin *>::iterator iter;
1.28 + CPlugin *pPlugin;
1.29 +
1.30 + for (iter=m_plugins.begin(); iter!=m_plugins.end(); iter++)
1.31 + {
1.32 + pPlugin = (*iter);
1.33 + if (pPlugin->GetStatus() == Plugin_Loaded)
1.34 + {
1.35 + RunSecondPass(pPlugin);
1.36 + }
1.37 + }
1.38 +}
1.39 +
1.40 void CPluginManager::RunSecondPass(CPlugin *pPlugin)
1.41 {
1.42 /* Tell this plugin to finish initializing itself */
1.43 @@ -776,7 +791,7 @@
1.44 pListener->OnPluginDestroyed(pPlugin);
1.45 }
1.46
1.47 - m_plugins.remove(plugin);
1.48 + m_plugins.remove(pPlugin);
1.49 sm_trie_delete(m_LoadLookup, pPlugin->m_filename);
1.50
1.51 delete pPlugin;