diff options
author | Martin Aumüller <martin.aumuller@nokia.com> | 2012-03-14 17:46:55 +0100 |
---|---|---|
committer | Chris Craig <ext-chris.craig@nokia.com> | 2012-03-15 21:58:41 +0100 |
commit | 9b0e7228cb4b636f667e760e00ff28de2684cba2 (patch) | |
tree | fc75ee293c82d105ff48bf9597475002109cc2e0 | |
parent | fa673dddb5bb7a8c851bacea6727b3d68d543456 (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.cpp | 9 |
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(); |