From ff3ba1045e8322caa0293b05aecbff4411963ea2 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 29 Oct 2015 16:49:04 +0100 Subject: State machine: fix removeConflictingTransitions() Since QSet<>::intersect() modifies the original set, exitSetT1 has wrong content for next iterations. Use intersects() instead. Change-Id: I09e0961ec6dfb34ade88d48d1e009529aeab82b4 Reviewed-by: Simon Hausmann --- src/corelib/statemachine/qstatemachine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/corelib/statemachine') diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index 31b079af0c..20d5ed890b 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -624,7 +624,7 @@ void QStateMachinePrivate::removeConflictingTransitions(QList exitSetT1 = computeExitSet_Unordered(t1, cache); + const QSet exitSetT1 = computeExitSet_Unordered(t1, cache); QList::iterator t2It = filteredTransitions.begin(); while (t2It != filteredTransitions.end()) { QAbstractTransition *t2 = *t2It; @@ -636,7 +636,7 @@ void QStateMachinePrivate::removeConflictingTransitions(QList exitSetT2 = computeExitSet_Unordered(t2, cache); - if (exitSetT1.intersect(exitSetT2).isEmpty()) { + if (!exitSetT1.intersects(exitSetT2)) { // No conflict, no cry. Next patient please. ++t2It; } else { -- cgit v1.2.3