Don't assert if CPluginManagerSimulator::createListener returns nullptr

CPluginManagerSimulator::createListener returns nullptr if no
listener could be created, e.g. because the plugin could not be loaded
due to missing dependencies. Handle this scenario properly instead of
raising an assert.

refs #669
This commit is contained in:
Roland Winklmeier
2016-07-26 13:38:18 +02:00
parent 04013d0747
commit 7a9577efef
3 changed files with 5 additions and 2 deletions

View File

@@ -11,6 +11,7 @@
#include "blackcore/pluginmanagersimulator.h"
#include "blackcore/simulator.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/logmessage.h"
#include <QJsonObject>
#include <QJsonValue>
@@ -42,9 +43,10 @@ namespace BlackCore
PluginExtended &plugin = m_plugins[pluginId];
if (!plugin.listener)
{
ISimulatorFactory *factory = getPluginById<ISimulatorFactory>(pluginId);
ISimulatorFactory *factory = getFactory(pluginId);
if (!factory)
{
CLogMessage(this).warning("Could not load plugin %1.") << pluginId;
m_plugins.remove(pluginId);
return nullptr;
}