aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2012-12-07 19:53:32 +0200
committerDaniel Teske <daniel.teske@digia.com>2013-01-15 18:45:03 +0100
commit0f026bd9d29256fa23555321453244eac7f0ffb9 (patch)
treef90a906f60388d33af2d3188c2d93b32dc19d0a6 /src
parentb7ba74d80c293982bd0b4739f722c36ef245a360 (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.cpp2
-rw-r--r--src/plugins/android/androidrunner.cpp9
-rw-r--r--src/plugins/android/androidrunner.h2
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);