From 25dd94808d0fee8ea3aa949d4d9ae17cac5ffd6c Mon Sep 17 00:00:00 2001 From: Christiaan Janssen <christiaan.janssen@digia.com> Date: Mon, 3 Jun 2013 13:47:04 +0200 Subject: [PATCH] QmlProfiler: fix dangling pointer in Engine Task-number: QTCREATORBUG-9391 Change-Id: Ib2ea66bd5694046577a0b5a0e2f611f3ffba0238 Reviewed-by: Kai Koehne <kai.koehne@digia.com> --- src/plugins/qmlprofiler/qmlprofilerengine.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.cpp b/src/plugins/qmlprofiler/qmlprofilerengine.cpp index 6914286dc66..f5800869f43 100644 --- a/src/plugins/qmlprofiler/qmlprofilerengine.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerengine.cpp @@ -61,7 +61,7 @@ class QmlProfilerEngine::QmlProfilerEnginePrivate { public: QmlProfilerEnginePrivate(QmlProfilerEngine *qq) : q(qq), m_runner(0) {} - ~QmlProfilerEnginePrivate() { delete m_runner; } + ~QmlProfilerEnginePrivate() { m_runner->disconnect(); delete m_runner; } bool attach(const QString &address, uint port); static AbstractQmlProfilerRunner *createRunner(ProjectExplorer::RunConfiguration *runConfiguration, @@ -153,6 +153,7 @@ bool QmlProfilerEngine::start() QTC_ASSERT(d->m_profilerState, return false); if (d->m_runner) { + d->m_runner->disconnect(); delete d->m_runner; d->m_runner = 0; } @@ -364,6 +365,7 @@ void QmlProfilerEngine::profilerStateChanged() // (a new one will be created at start) d->m_noDebugOutputTimer.stop(); if (d->m_runner) { + d->m_runner->disconnect(); delete d->m_runner; d->m_runner = 0; } -- GitLab