X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;ds=sidebyside;f=src%2Flibs%2FPlugins%2Fpluginmanager.cpp;h=8ca6048f915eba56b5e7c9ed90936948e4ae6c9d;hb=ad3c375c68b46edcb823ff3eb2dc12647da1db19;hp=c357d114a3236b227ed0fd4cf05428a033c283f9;hpb=f26e65c1e66cf02eae9aa209acac743e3b04b4f4;p=evaf
diff --git a/src/libs/Plugins/pluginmanager.cpp b/src/libs/Plugins/pluginmanager.cpp
index c357d11..8ca6048 100644
--- a/src/libs/Plugins/pluginmanager.cpp
+++ b/src/libs/Plugins/pluginmanager.cpp
@@ -312,7 +312,7 @@ bool PluginManagerPrivate::loadPlugins()
// Initialize eVaf plugins
i = 0;
while (i < mPlugins.size()) {
- if (mPlugins.at(i)->init()) {
+ if (!mPlugins.at(i)->init()) {
EVAF_ERROR("Failed to initialize module '%s'", qPrintable(mPlugins.at(i)->name()));
mPlugins.removeAt(i);
}
@@ -405,10 +405,10 @@ Module::Module(QString const & name)
Module::~Module()
{
- if (mPluginFactory)
- delete mPluginFactory;
- if (mLoader)
+ if (mLoader) {
+ mLoader->unload();
delete mLoader;
+ }
}
bool Module::load()
@@ -430,7 +430,7 @@ bool Module::load()
if ((mPluginFactory = qobject_cast(root)) == 0) {
// If not, then it has to implement the iPlugin interface
- if ((mPlugin = qobject_cast(root)) == 0) {
+ if (qobject_cast(root) == 0) {
EVAF_FATAL_ERROR("Module '%s' is not a valid eVaf module", qPrintable(mName));
return false;
}
@@ -444,13 +444,10 @@ bool Module::load()
void Module::unload()
{
mRoot = 0;
-
- if (mPluginFactory) {
- delete mPluginFactory;
- mPluginFactory = 0;
- }
+ mPluginFactory = 0;
mPlugin = 0;
if (mLoader) {
+ mLoader->unload();
delete mLoader;
mLoader = 0;
}
@@ -509,8 +506,6 @@ Plugin::Plugin(Module * module, QString const & name, QString const & args)
Plugin::~Plugin()
{
- if (mPlugin)
- delete mPlugin;
}
bool Plugin::load()
@@ -523,10 +518,7 @@ bool Plugin::load()
void Plugin::unload()
{
- if (mPlugin) {
- delete mPlugin;
- mPlugin = 0;
- }
+ mPlugin = 0;
}
bool Plugin::init()