From e0c8bc6fff3652aa3d4585d391e9ddb0b2f62d21 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Fri, 23 Jul 2010 17:22:44 +0200
Subject: [PATCH] debugger: fix crash when closing the disassembler and memory
 views

---
 src/plugins/debugger/debuggeragents.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/plugins/debugger/debuggeragents.cpp b/src/plugins/debugger/debuggeragents.cpp
index 8c0028f0d00..0442d17229c 100644
--- a/src/plugins/debugger/debuggeragents.cpp
+++ b/src/plugins/debugger/debuggeragents.cpp
@@ -95,10 +95,12 @@ MemoryViewAgent::MemoryViewAgent(DebuggerEngine *engine, const QString &addr)
 
 MemoryViewAgent::~MemoryViewAgent()
 {
-    foreach (QPointer<Core::IEditor> editor, m_editors) {
+    Core::EditorManager *editorManager = Core::EditorManager::instance();
+    QList<Core::IEditor *> editors;
+    foreach (QPointer<Core::IEditor> editor, m_editors)
         if (editor)
-            editor->deleteLater();
-    }
+            editors.append(editor.data());
+    editorManager->closeEditors(editors);
 }
 
 void MemoryViewAgent::createBinEditor(quint64 addr)
@@ -232,8 +234,9 @@ DisassemblerViewAgent::DisassemblerViewAgent(DebuggerEngine *engine)
 
 DisassemblerViewAgent::~DisassemblerViewAgent()
 {
+    Core::EditorManager *editorManager = Core::EditorManager::instance();
     if (d->editor)
-        d->editor->deleteLater();
+        editorManager->closeEditors(QList<Core::IEditor *>() << d->editor);
     d->editor = 0;
     delete d->locationMark;
     d->locationMark = 0;
@@ -244,9 +247,6 @@ DisassemblerViewAgent::~DisassemblerViewAgent()
 void DisassemblerViewAgent::cleanup()
 {
     d->cache.clear();
-    //if (d->editor)
-    //    d->editor->deleteLater();
-    //d->editor = 0;
 }
 
 void DisassemblerViewAgent::resetLocation()
-- 
GitLab