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