From b8d69b37fcdfc187699435e635048573c81e6ee5 Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Tue, 10 Apr 2012 11:51:48 +0200
Subject: [PATCH] QmlCppEngine: Call quitDebugger already in
 InferiorShutdownRequested

Doing it in (CppEngine) EngineShutdownOk will result in a write to
an already closed socket.

Change-Id: Ie9712f33d57348ecb27e31eaeb44f42f159a400c
Reviewed-by: Aurindam Jana <aurindam.jana@nokia.com>
---
 src/plugins/debugger/qml/qmlcppengine.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index 91297c9d7de..fed687bed1b 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -684,6 +684,7 @@ void QmlCppEngine::slaveEngineStateChanged
                        || state() == InferiorStopOk, qDebug() << state());
             if (state() == InferiorStopOk)
                 setState(InferiorShutdownRequested);
+            qmlEngine()->quitDebugger();
             break;
         }
         case InferiorShutdownFailed: {
@@ -703,7 +704,6 @@ void QmlCppEngine::slaveEngineStateChanged
         case EngineShutdownRequested: {
             // set by queueShutdownEngine()
             QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << state());
-            qmlEngine()->quitDebugger();
             break;
         }
         case EngineShutdownFailed: {
@@ -741,11 +741,12 @@ void QmlCppEngine::slaveEngineStateChanged
                 }
 
                 QTC_ASSERT(state() == InferiorRunOk
-                           || state() == InferiorStopRequested, qDebug() << state());
+                           || state() == InferiorStopRequested
+                           || state() == InferiorShutdownRequested, qDebug() << state());
 
                 if (state() == InferiorRunOk)
                     notifyInferiorSpontaneousStop();
-                else
+                else if (state() == InferiorStopRequested)
                     notifyInferiorStopOk();
             }
 
-- 
GitLab