From 88849590ddd01e75f7fa60f90248aec1f7033aa3 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 16 Jul 2018 22:49:14 +0200 Subject: [PATCH] fix a crash that may happen in some circumstances with funny rules --- libnymea-app-core/rulemanager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libnymea-app-core/rulemanager.cpp b/libnymea-app-core/rulemanager.cpp index 14970864..e6635fcc 100644 --- a/libnymea-app-core/rulemanager.cpp +++ b/libnymea-app-core/rulemanager.cpp @@ -246,7 +246,10 @@ StateEvaluator *RuleManager::parseStateEvaluator(const QVariantMap &stateEvaluat stateEvaluator->setStateDescriptor(sd); foreach (const QVariant &childEvaluatorVariant, stateEvaluatorMap.value("childEvaluators").toList()) { - stateEvaluator->childEvaluators()->addStateEvaluator(parseStateEvaluator(childEvaluatorVariant.toMap())); + StateEvaluator *stateEvaluator = parseStateEvaluator(childEvaluatorVariant.toMap()); + if (stateEvaluator) { + stateEvaluator->childEvaluators()->addStateEvaluator(stateEvaluator); + } } operatorEnum = QMetaEnum::fromType(); stateEvaluator->setStateOperator((StateEvaluator::StateOperator)operatorEnum.keyToValue(stateEvaluatorMap.value("operator").toByteArray()));