diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> | 2009-11-05 12:24:58 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-11-06 13:07:36 (GMT) |
commit | 5667e9b59ab3461c23f0adf35eaf393e4097461a (patch) | |
tree | aa866bdfdcc514131950095bb388a16271f0314a | |
parent | cfbaa43a0a238d164cf76bdbe224d4aa9141fb7a (diff) | |
download | Qt-5667e9b59ab3461c23f0adf35eaf393e4097461a.zip Qt-5667e9b59ab3461c23f0adf35eaf393e4097461a.tar.gz Qt-5667e9b59ab3461c23f0adf35eaf393e4097461a.tar.bz2 |
Don't crash in QStateMachine when event transition listens to
QApplication instance
We can't assert on actually watching the watched object, since we may
have installed an event filter on QApplication::instance(), in which
case we will filter events for all objects.
Reviewed-by: Gunnar
-rw-r--r-- | src/corelib/statemachine/qstatemachine.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index cf951c9..ecf3f9c 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -1616,9 +1616,8 @@ void QStateMachinePrivate::unregisterEventTransition(QEventTransition *transitio } void QStateMachinePrivate::handleFilteredEvent(QObject *watched, QEvent *event) -{ - Q_ASSERT(qobjectEvents.contains(watched)); - if (qobjectEvents[watched].contains(event->type())) { +{ + if (qobjectEvents.value(watched).contains(event->type())) { postInternalEvent(new QStateMachine::WrappedEvent(watched, handler->cloneEvent(event))); processEvents(DirectProcessing); } |