From 243a6259618e69b8da9ac2438480c449754f7f77 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Fri, 20 Sep 2013 17:53:49 +0300 Subject: 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 Reviewed-by: Petar Perisin --- src/plugins/coreplugin/editormanager/editormanager.cpp | 5 ++--- 1 file 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 &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()) -- cgit v1.2.1