diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2011-08-30 12:34:31 +0400 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-09-12 12:55:27 +0200 |
commit | 549b2fa2465d19e52482a2df206f92db296434fd (patch) | |
tree | fe8ec2eeab459971a239f21e58e1e5643c7cfa03 /tests | |
parent | e8e2e26d5aa97b56519f5c7bea706aff0fd86326 (diff) |
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.
(cherry picked from commit e95de30977291a251660f72baa84b5ff244711fb)
Change-Id: Ie0b371c54458ce85f4d36430de8080a5e78d8b7f
Reviewed-on: http://codereview.qt-project.org/4585
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qshortcut/tst_qshortcut.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/auto/qshortcut/tst_qshortcut.cpp b/tests/auto/qshortcut/tst_qshortcut.cpp index a78e8cfd27..d761b19542 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(); } |