From b53c43adbe42503662a1d47e368125ac7c1698fd Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 19 Jul 2018 00:01:23 +0200 Subject: [PATCH] don't crash when we get a rule active notification before we fetched rules --- libnymea-app-core/rulemanager.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libnymea-app-core/rulemanager.cpp b/libnymea-app-core/rulemanager.cpp index 33cbe50c..d272dc6c 100644 --- a/libnymea-app-core/rulemanager.cpp +++ b/libnymea-app-core/rulemanager.cpp @@ -113,7 +113,12 @@ void RuleManager::handleRulesNotification(const QVariantMap ¶ms) m_rules->remove(ruleId); m_rules->insert(parseRule(ruleMap)); } else if (params.value("notification").toString() == "Rules.RuleActiveChanged") { - m_rules->getRule(params.value("params").toMap().value("ruleId").toUuid())->setActive(params.value("params").toMap().value("active").toBool()); + Rule *rule = m_rules->getRule(params.value("params").toMap().value("ruleId").toUuid()); + if (rule) { + qWarning() << "Got a rule active notification for a rule we don't know"; + return; + } + rule->setActive(params.value("params").toMap().value("active").toBool()); } else { qWarning() << "Unhandled rule notification" << params; }