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>
This commit is contained in:
Konstantin Ritt 2011-08-30 12:34:31 +04:00 committed by Qt by Nokia
parent e8e2e26d5a
commit 549b2fa246

View File

@ -1124,7 +1124,8 @@ void tst_QShortcut::context()
// ------------------------------------------------------------------
void tst_QShortcut::clearAllShortcuts()
{
qDeleteAll(shortcuts);
QList<QShortcut *> shortcutsCpy = shortcuts;
qDeleteAll(shortcutsCpy);
shortcuts.clear();
}