summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2011-08-30 08:34:31 (GMT)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-08-30 10:17:16 (GMT)
commite95de30977291a251660f72baa84b5ff244711fb (patch)
tree8be24a45e6b9623590361308ab29bb694eb61e1f
parentfc87ef723d5a030fd701257eeca471e450e08fbb (diff)
downloadQt-e95de30977291a251660f72baa84b5ff244711fb.zip
Qt-e95de30977291a251660f72baa84b5ff244711fb.tar.gz
Qt-e95de30977291a251660f72baa84b5ff244711fb.tar.bz2
don't crash when destroying the shortcuts
as shortcutDestroyed(..) modifies the shortcuts list. disconnect from shortcutDestroyed() first, or operate on a detach()-ed list this was uncovered by QList::removaAll() optimization patch.
-rw-r--r--tests/auto/qshortcut/tst_qshortcut.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/auto/qshortcut/tst_qshortcut.cpp b/tests/auto/qshortcut/tst_qshortcut.cpp
index a78e8cf..d761b19 100644
--- a/tests/auto/qshortcut/tst_qshortcut.cpp
+++ b/tests/auto/qshortcut/tst_qshortcut.cpp
@@ -1124,7 +1124,8 @@ void tst_QShortcut::context()
// ------------------------------------------------------------------
void tst_QShortcut::clearAllShortcuts()
{
- qDeleteAll(shortcuts);
+ QList<QShortcut *> shortcutsCpy = shortcuts;
+ qDeleteAll(shortcutsCpy);
shortcuts.clear();
}