PluginManager: Destruct plugins that fail to initialize

Directly destruct the plugin after failed initialization, instead of
letting the plugin loader clean up automatically just before application
destruction (which would be after all other plugins are already
destructed).

Change-Id: Ic459a652fdb99c3e3ee1a7561334ba7075c9c666
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-06-16 14:02:52 +02:00
parent 53a941de69
commit 1e92b84633

View File

@@ -983,6 +983,9 @@ bool PluginSpecPrivate::initializePlugin()
if (!plugin->initialize(arguments, &err)) { if (!plugin->initialize(arguments, &err)) {
errorString = QCoreApplication::translate("PluginSpec", "Plugin initialization failed: %1").arg(err); errorString = QCoreApplication::translate("PluginSpec", "Plugin initialization failed: %1").arg(err);
hasError = true; hasError = true;
// clean up
loader.unload();
plugin = 0;
return false; return false;
} }
state = PluginSpec::Initialized; state = PluginSpec::Initialized;