forked from qt-creator/qt-creator
debugger: fix crash when closing the disassembler and memory views
This commit is contained in:
@@ -95,10 +95,12 @@ MemoryViewAgent::MemoryViewAgent(DebuggerEngine *engine, const QString &addr)
|
|||||||
|
|
||||||
MemoryViewAgent::~MemoryViewAgent()
|
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)
|
if (editor)
|
||||||
editor->deleteLater();
|
editors.append(editor.data());
|
||||||
}
|
editorManager->closeEditors(editors);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemoryViewAgent::createBinEditor(quint64 addr)
|
void MemoryViewAgent::createBinEditor(quint64 addr)
|
||||||
@@ -232,8 +234,9 @@ DisassemblerViewAgent::DisassemblerViewAgent(DebuggerEngine *engine)
|
|||||||
|
|
||||||
DisassemblerViewAgent::~DisassemblerViewAgent()
|
DisassemblerViewAgent::~DisassemblerViewAgent()
|
||||||
{
|
{
|
||||||
|
Core::EditorManager *editorManager = Core::EditorManager::instance();
|
||||||
if (d->editor)
|
if (d->editor)
|
||||||
d->editor->deleteLater();
|
editorManager->closeEditors(QList<Core::IEditor *>() << d->editor);
|
||||||
d->editor = 0;
|
d->editor = 0;
|
||||||
delete d->locationMark;
|
delete d->locationMark;
|
||||||
d->locationMark = 0;
|
d->locationMark = 0;
|
||||||
@@ -244,9 +247,6 @@ DisassemblerViewAgent::~DisassemblerViewAgent()
|
|||||||
void DisassemblerViewAgent::cleanup()
|
void DisassemblerViewAgent::cleanup()
|
||||||
{
|
{
|
||||||
d->cache.clear();
|
d->cache.clear();
|
||||||
//if (d->editor)
|
|
||||||
// d->editor->deleteLater();
|
|
||||||
//d->editor = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisassemblerViewAgent::resetLocation()
|
void DisassemblerViewAgent::resetLocation()
|
||||||
|
|||||||
Reference in New Issue
Block a user