diff options
author | BogDan Vatra <bogdan@kde.org> | 2012-12-07 19:53:32 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@digia.com> | 2013-01-15 18:45:03 +0100 |
commit | 0f026bd9d29256fa23555321453244eac7f0ffb9 (patch) | |
tree | f90a906f60388d33af2d3188c2d93b32dc19d0a6 /src | |
parent | b7ba74d80c293982bd0b4739f722c36ef245a360 (diff) |
Fix crash when pressing stop button
Change-Id: If1902153404c49516cf4e535655dbbb5a8135b1c
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/android/androidruncontrol.cpp | 2 | ||||
-rw-r--r-- | src/plugins/android/androidrunner.cpp | 9 | ||||
-rw-r--r-- | src/plugins/android/androidrunner.h | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/plugins/android/androidruncontrol.cpp b/src/plugins/android/androidruncontrol.cpp index 5ad51c5fc24..45dfdf391f3 100644 --- a/src/plugins/android/androidruncontrol.cpp +++ b/src/plugins/android/androidruncontrol.cpp @@ -71,7 +71,7 @@ void AndroidRunControl::start() RunControl::StopResult AndroidRunControl::stop() { - m_runner->stop(); + m_runner->stop(true); return StoppedSynchronously; } diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 57439c857d4..dbb3850201f 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -68,7 +68,7 @@ AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig AndroidRunner::~AndroidRunner() { - stop(); + stop(false); } void AndroidRunner::checkPID() @@ -232,7 +232,7 @@ void AndroidRunner::startLogcat() emit remoteProcessStarted(5039); } -void AndroidRunner::stop() +void AndroidRunner::stop(bool async) { QMutexLocker locker(&m_mutex); m_adbLogcatProcess.terminate(); @@ -240,7 +240,10 @@ void AndroidRunner::stop() m_checkPIDTimer.stop(); if (m_processPID == -1) return; // don't emit another signal - QtConcurrent::run(this, &AndroidRunner::asyncStop); + if (async) + QtConcurrent::run(this, &AndroidRunner::asyncStop); + else + asyncStop(); } void AndroidRunner::asyncStop() { diff --git a/src/plugins/android/androidrunner.h b/src/plugins/android/androidrunner.h index dbec6f68c57..09474e16014 100644 --- a/src/plugins/android/androidrunner.h +++ b/src/plugins/android/androidrunner.h @@ -55,7 +55,7 @@ public: public slots: void start(); - void stop(); + void stop(bool async); signals: void remoteProcessStarted(int gdbServerPort = -1, int qmlPort = -1); |