From 485315ec67258a6f0bc99811eeddfa553d529989 Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Wed, 5 Jun 2013 10:48:16 +0200 Subject: [PATCH] QmlProfiler: fix potential crash fixes Ib2ea66bd5694046577a0b5a0e2f611f3ffba0238 Change-Id: Ib7a4e02391513984f1c81a43a5fab490b7f88923 Reviewed-by: Kai Koehne Reviewed-by: Eike Ziller --- src/plugins/qmlprofiler/localqmlprofilerrunner.cpp | 5 +++++ src/plugins/qmlprofiler/localqmlprofilerrunner.h | 1 + src/plugins/qmlprofiler/qmlprofilerengine.cpp | 4 +--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp b/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp index d6b3dccf970..a7883f506c8 100644 --- a/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp +++ b/src/plugins/qmlprofiler/localqmlprofilerrunner.cpp @@ -41,6 +41,11 @@ LocalQmlProfilerRunner::LocalQmlProfilerRunner(const Configuration &configuratio this, SIGNAL(appendMessage(QString,Utils::OutputFormat))); } +LocalQmlProfilerRunner::~LocalQmlProfilerRunner() +{ + disconnect(); +} + void LocalQmlProfilerRunner::start() { QString arguments = QString::fromLatin1("-qmljsdebugger=port:%1,block").arg(m_configuration.port); diff --git a/src/plugins/qmlprofiler/localqmlprofilerrunner.h b/src/plugins/qmlprofiler/localqmlprofilerrunner.h index 042df146252..26a9b451618 100644 --- a/src/plugins/qmlprofiler/localqmlprofilerrunner.h +++ b/src/plugins/qmlprofiler/localqmlprofilerrunner.h @@ -52,6 +52,7 @@ public: }; explicit LocalQmlProfilerRunner(const Configuration &configuration, QObject *parent = 0); + ~LocalQmlProfilerRunner(); // AbstractQmlProfilerRunner virtual void start(); diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.cpp b/src/plugins/qmlprofiler/qmlprofilerengine.cpp index f5800869f43..6914286dc66 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() { m_runner->disconnect(); delete m_runner; } + ~QmlProfilerEnginePrivate() { delete m_runner; } bool attach(const QString &address, uint port); static AbstractQmlProfilerRunner *createRunner(ProjectExplorer::RunConfiguration *runConfiguration, @@ -153,7 +153,6 @@ 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; } @@ -365,7 +364,6 @@ 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; }