From 6b0697182d4d0d953a01a76494da4b5e4f53a15f Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sun, 5 Apr 2020 14:41:12 +0200 Subject: [PATCH] Fix a crash when removing a thing without plugin --- libnymea-core/integrations/thingmanagerimplementation.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libnymea-core/integrations/thingmanagerimplementation.cpp b/libnymea-core/integrations/thingmanagerimplementation.cpp index 6fd0609a..e2f81222 100644 --- a/libnymea-core/integrations/thingmanagerimplementation.cpp +++ b/libnymea-core/integrations/thingmanagerimplementation.cpp @@ -742,7 +742,12 @@ Thing::ThingError ThingManagerImplementation::removeConfiguredThing(const ThingI if (!thing) { return Thing::ThingErrorThingNotFound; } - m_integrationPlugins.value(thing->pluginId())->thingRemoved(thing); + IntegrationPlugin *plugin = m_integrationPlugins.value(thing->pluginId()); + if (!plugin) { + qCWarning(dcThingManager()).nospace() << "Plugin not loaded for thing " << thing->name() << ". Not calling thingRemoved on plugin."; + } else { + plugin->thingRemoved(thing); + } thing->deleteLater();