aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@digia.com>2013-06-03 13:47:04 +0200
committerKai Koehne <kai.koehne@digia.com>2013-06-04 12:06:53 +0200
commit25dd94808d0fee8ea3aa949d4d9ae17cac5ffd6c (patch)
tree01fbc1facedfd886ec559f903a7154542fbbee1e
parentd97a7f4067c57154733646726c1969cc63588a50 (diff)
QmlProfiler: fix dangling pointer in Engine
Task-number: QTCREATORBUG-9391 Change-Id: Ib2ea66bd5694046577a0b5a0e2f611f3ffba0238 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerengine.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.cpp b/src/plugins/qmlprofiler/qmlprofilerengine.cpp
index 6914286dc6..f5800869f4 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;
}