aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2023-01-26 10:58:32 +0100
committerUlf Hermann <ulf.hermann@qt.io>2023-01-26 15:25:11 +0100
commit6dc7fa90efa592dc555008b0e8d666c72801f31d (patch)
tree9effccbd05d6575fcba56455c4c6a63f9a77f8d3
parent778659c100996947e70ffd7a67ec2bcf748c5082 (diff)
StateMachine: Don't crash if no signal is passed to SignalTransition
Rather, just reset the transition. Adapted from commit af4c8da54bbf057f3a8d7cf8a8e4146d35aad7f6 in qtscxml. Fixes: QTBUG-110286 Change-Id: I49a7588f771c4caa73e85334487d9d9c0260a7ce Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
-rw-r--r--src/imports/statemachine/signaltransition.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/imports/statemachine/signaltransition.cpp b/src/imports/statemachine/signaltransition.cpp
index 99a9ebba95..c571306658 100644
--- a/src/imports/statemachine/signaltransition.cpp
+++ b/src/imports/statemachine/signaltransition.cpp
@@ -171,7 +171,11 @@ void SignalTransition::connectTriggered()
QV4::ExecutionEngine *jsEngine = QQmlEngine::contextForObject(this)->engine()->handle();
QV4::Scope scope(jsEngine);
QV4::Scoped<QV4::QObjectMethod> qobjectSignal(scope, QJSValuePrivate::convertedToValue(jsEngine, m_signal));
- Q_ASSERT(qobjectSignal);
+ if (!qobjectSignal) {
+ m_signalExpression.take(nullptr);
+ return;
+ }
+
QMetaMethod metaMethod = target->metaObject()->method(qobjectSignal->methodIndex());
int signalIndex = QMetaObjectPrivate::signalIndex(metaMethod);