forked from qt-creator/qt-creator
QmlProfiler: fix potential crash
fixes Ib2ea66bd5694046577a0b5a0e2f611f3ffba0238 Change-Id: Ib7a4e02391513984f1c81a43a5fab490b7f88923 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -41,6 +41,11 @@ LocalQmlProfilerRunner::LocalQmlProfilerRunner(const Configuration &configuratio
|
|||||||
this, SIGNAL(appendMessage(QString,Utils::OutputFormat)));
|
this, SIGNAL(appendMessage(QString,Utils::OutputFormat)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LocalQmlProfilerRunner::~LocalQmlProfilerRunner()
|
||||||
|
{
|
||||||
|
disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
void LocalQmlProfilerRunner::start()
|
void LocalQmlProfilerRunner::start()
|
||||||
{
|
{
|
||||||
QString arguments = QString::fromLatin1("-qmljsdebugger=port:%1,block").arg(m_configuration.port);
|
QString arguments = QString::fromLatin1("-qmljsdebugger=port:%1,block").arg(m_configuration.port);
|
||||||
|
@@ -52,6 +52,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
explicit LocalQmlProfilerRunner(const Configuration &configuration, QObject *parent = 0);
|
explicit LocalQmlProfilerRunner(const Configuration &configuration, QObject *parent = 0);
|
||||||
|
~LocalQmlProfilerRunner();
|
||||||
|
|
||||||
// AbstractQmlProfilerRunner
|
// AbstractQmlProfilerRunner
|
||||||
virtual void start();
|
virtual void start();
|
||||||
|
@@ -61,7 +61,7 @@ class QmlProfilerEngine::QmlProfilerEnginePrivate
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QmlProfilerEnginePrivate(QmlProfilerEngine *qq) : q(qq), m_runner(0) {}
|
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);
|
bool attach(const QString &address, uint port);
|
||||||
static AbstractQmlProfilerRunner *createRunner(ProjectExplorer::RunConfiguration *runConfiguration,
|
static AbstractQmlProfilerRunner *createRunner(ProjectExplorer::RunConfiguration *runConfiguration,
|
||||||
@@ -153,7 +153,6 @@ bool QmlProfilerEngine::start()
|
|||||||
QTC_ASSERT(d->m_profilerState, return false);
|
QTC_ASSERT(d->m_profilerState, return false);
|
||||||
|
|
||||||
if (d->m_runner) {
|
if (d->m_runner) {
|
||||||
d->m_runner->disconnect();
|
|
||||||
delete d->m_runner;
|
delete d->m_runner;
|
||||||
d->m_runner = 0;
|
d->m_runner = 0;
|
||||||
}
|
}
|
||||||
@@ -365,7 +364,6 @@ void QmlProfilerEngine::profilerStateChanged()
|
|||||||
// (a new one will be created at start)
|
// (a new one will be created at start)
|
||||||
d->m_noDebugOutputTimer.stop();
|
d->m_noDebugOutputTimer.stop();
|
||||||
if (d->m_runner) {
|
if (d->m_runner) {
|
||||||
d->m_runner->disconnect();
|
|
||||||
delete d->m_runner;
|
delete d->m_runner;
|
||||||
d->m_runner = 0;
|
d->m_runner = 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user