summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Aumüller <martin.aumuller@nokia.com>2012-03-14 17:46:55 +0100
committerChris Craig <ext-chris.craig@nokia.com>2012-03-15 21:58:41 +0100
commit9b0e7228cb4b636f667e760e00ff28de2684cba2 (patch)
treefc75ee293c82d105ff48bf9597475002109cc2e0
parentfa673dddb5bb7a8c851bacea6727b3d68d543456 (diff)
don't schedule prelaunched instance while one exists
- avoid failed assertions (m_prelaunch == 0) by scheduling starting a new instance only if there does not exist one - also make sure current instance is deleted before creating one for a different runtime Change-Id: Iec375d43d4d25508f5cdf433dec392d4196e53b3 Reviewed-by: Lasse Holmstedt <lasse.holmstedt@nokia.com> Reviewed-by: Chris Craig <ext-chris.craig@nokia.com>
-rw-r--r--src/core/prelaunchprocessbackendfactory.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/prelaunchprocessbackendfactory.cpp b/src/core/prelaunchprocessbackendfactory.cpp
index f7eb263..91d1505 100644
--- a/src/core/prelaunchprocessbackendfactory.cpp
+++ b/src/core/prelaunchprocessbackendfactory.cpp
@@ -174,7 +174,12 @@ void PrelaunchProcessBackendFactory::setPrelaunchEnabled(bool value)
m_prelaunchEnabled = value;
if (!m_prelaunchEnabled) {
m_timer.stop();
+ if (m_prelaunch) {
+ m_prelaunch->deleteLater();
+ m_prelaunch = NULL;
+ }
} else {
+ Q_ASSERT(m_prelaunch == NULL);
startPrelaunchTimer();
}
emit prelaunchEnabledChanged();
@@ -296,6 +301,10 @@ void PrelaunchProcessBackendFactory::setProcessInfo(ProcessInfo *processInfo)
if (processInfo) {
m_info = new ProcessInfo(*processInfo);
m_info->setParent(this);
+ if (m_prelaunch) {
+ m_prelaunch->deleteLater();
+ m_prelaunch = NULL;
+ }
startPrelaunchTimer();
} else {
m_timer.stop();