summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/debugger/debuggermanager.cpp41
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp26
2 files changed, 25 insertions, 42 deletions
diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 7457b90c22..3e2830e679 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -342,6 +342,19 @@ DebuggerManager::DebuggerManager(DebuggerPlugin *plugin)
DebuggerManager::~DebuggerManager()
{
#define doDelete(ptr) delete ptr; ptr = 0
+ doDelete(scriptEngine);
+ doDelete(pdbEngine);
+ doDelete(gdbEngine);
+ doDelete(cdbEngine);
+
+ doDelete(d->m_breakHandler);
+ doDelete(d->m_threadsHandler);
+ doDelete(d->m_modulesHandler);
+ doDelete(d->m_registerHandler);
+ doDelete(d->m_snapshotHandler);
+ doDelete(d->m_stackHandler);
+ doDelete(d->m_watchHandler);
+
doDelete(gdbEngine);
doDelete(scriptEngine);
doDelete(cdbEngine);
@@ -847,34 +860,6 @@ void DebuggerManager::shutdown()
if (d->m_engine)
d->m_engine->shutdown();
d->m_engine = 0;
-
- #define doDelete(ptr) delete ptr; ptr = 0
- doDelete(scriptEngine);
- doDelete(pdbEngine);
- doDelete(gdbEngine);
- doDelete(cdbEngine);
-
- // Delete these manually before deleting the manager
- // (who will delete the models for most views)
- doDelete(d->m_breakWindow);
- doDelete(d->m_modulesWindow);
- doDelete(d->m_outputWindow);
- doDelete(d->m_registerWindow);
- doDelete(d->m_stackWindow);
- doDelete(d->m_sourceFilesWindow);
- doDelete(d->m_threadsWindow);
- //doDelete(d->m_tooltipWindow);
- doDelete(d->m_watchersWindow);
- doDelete(d->m_localsWindow);
-
- doDelete(d->m_breakHandler);
- doDelete(d->m_threadsHandler);
- doDelete(d->m_modulesHandler);
- doDelete(d->m_registerHandler);
- doDelete(d->m_snapshotHandler);
- doDelete(d->m_stackHandler);
- doDelete(d->m_watchHandler);
- #undef doDelete
}
void DebuggerManager::makeSnapshot()
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 64a433e9df..603349c76d 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -545,25 +545,11 @@ DebuggerPlugin::DebuggerPlugin()
{}
DebuggerPlugin::~DebuggerPlugin()
-{}
-
-void DebuggerPlugin::shutdown()
{
- QTC_ASSERT(m_manager, /**/);
- if (m_manager)
- m_manager->shutdown();
-
- writeSettings();
-
- if (m_uiSwitcher)
- m_uiSwitcher->shutdown();
-
delete DebuggerSettings::instance();
removeObject(m_debugMode);
- // FIXME: when using the line below, BreakWindow etc gets deleted twice.
- // so better leak for now...
delete m_debugMode;
m_debugMode = 0;
@@ -579,6 +565,18 @@ void DebuggerPlugin::shutdown()
m_uiSwitcher = 0;
}
+void DebuggerPlugin::shutdown()
+{
+ QTC_ASSERT(m_manager, /**/);
+ if (m_manager)
+ m_manager->shutdown();
+
+ writeSettings();
+
+ if (m_uiSwitcher)
+ m_uiSwitcher->shutdown();
+}
+
static QString msgParameterMissing(const QString &a)
{
return DebuggerPlugin::tr("Option '%1' is missing the parameter.").arg(a);