From 9b0e7228cb4b636f667e760e00ff28de2684cba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Aum=C3=BCller?= Date: Wed, 14 Mar 2012 17:46:55 +0100 Subject: 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 Reviewed-by: Chris Craig --- src/core/prelaunchprocessbackendfactory.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) 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(); -- cgit v1.2.3