summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-09-20 17:53:49 +0300
committerOrgad Shaneh <orgads@gmail.com>2013-09-21 19:05:41 +0200
commit243a6259618e69b8da9ac2438480c449754f7f77 (patch)
treed00af8b80afcd3a67903864ebcebdb091463031f
parent8b7dff6fdc1999ec547b009d97fcbb15140770f9 (diff)
downloadqt-creator-243a6259618e69b8da9ac2438480c449754f7f77.tar.gz
EditorManager: Fix crash when closing an editor upon activation
* activateEditor receives a pointer to the editor. * When currentEditorChanged is emitted (using a direct connection), closeEditor is called (because changes were reverted and the editor isn't needed anymore. * closeEditor eventually deletes the editor * Control is returned to activateEditor, which now references a deleted editor -> crash Task-number: QTCREATORBUG-10190 Change-Id: I9062f03c1c1550f0a8c0c49c226dedcfd252eb12 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index e898895f39..2f1cc62df8 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1161,9 +1161,8 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask
emit editorsClosed(acceptedEditors);
- foreach (IEditor *editor, acceptedEditors) {
- delete editor;
- }
+ foreach (IEditor *editor, acceptedEditors)
+ editor->deleteLater();
if (currentView) {
if (IEditor *editor = currentView->currentEditor())