Provide unloading of unneeded plugins.
svn-id: r14829
This commit is contained in:
parent
ca6ad7a76f
commit
f6af7cdcc7
3 changed files with 21 additions and 2 deletions
|
@ -265,12 +265,24 @@ void PluginManager::loadPlugins() {
|
|||
}
|
||||
|
||||
void PluginManager::unloadPlugins() {
|
||||
unloadPluginsExcept(NULL);
|
||||
}
|
||||
|
||||
void PluginManager::unloadPluginsExcept(const Plugin *plugin) {
|
||||
Plugin *found = NULL;
|
||||
uint i;
|
||||
for (i = 0; i < _plugins.size(); i++) {
|
||||
_plugins[i]->unloadPlugin();
|
||||
delete _plugins[i];
|
||||
if (_plugins[i] == plugin) {
|
||||
found = _plugins[i];
|
||||
} else {
|
||||
_plugins[i]->unloadPlugin();
|
||||
delete _plugins[i];
|
||||
}
|
||||
}
|
||||
_plugins.clear();
|
||||
if (found != NULL) {
|
||||
_plugins.push_back(found);
|
||||
}
|
||||
}
|
||||
|
||||
bool PluginManager::tryLoadPlugin(Plugin *plugin) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue