From 99172852e11a84c8387dfcba02c9afd946c9837d Mon Sep 17 00:00:00 2001
From: Robert Loehning <robert.loehning@nokia.com>
Date: Fri, 16 Oct 2009 10:50:59 +0200
Subject: [PATCH] Trk: Changed Launcher::handleResult so it can be used for
 running various processes on device.

Reviewed-by: Friedemann Kleint
---
 src/shared/trk/launcher.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/shared/trk/launcher.cpp b/src/shared/trk/launcher.cpp
index 3d808b22245..cae6796aff0 100644
--- a/src/shared/trk/launcher.cpp
+++ b/src/shared/trk/launcher.cpp
@@ -254,9 +254,10 @@ void Launcher::handleResult(const TrkResult &result)
             logMessage(prefix + "NAME:  " + name);
             */
 
+            if (result.data.size() < 10)
+                break;
             QByteArray ba;
-            appendInt(&ba, d->m_session.pid);
-            appendInt(&ba, d->m_session.tid);
+            ba.append(result.data.mid(2, 8));
             d->m_device.sendTrkMessage(TrkContinue, TrkCallback(), ba, "CONTINUE");
             //d->m_device.sendTrkAck(result.token)
             break;
@@ -269,7 +270,9 @@ void Launcher::handleResult(const TrkResult &result)
                        arg(QString::fromAscii(prefix)).arg(itemType ? QLatin1String("LIB") : QLatin1String("PROCESS")).
                        arg(name));
             d->m_device.sendTrkAck(result.token);
-            if (itemType == 0) { // process
+            if (itemType == 0 // process
+                && result.data.size() >= 10
+                && d->m_session.pid == extractInt(result.data.data() + 6)) {
                 d->m_device.sendTrkMessage(TrkDisconnect, TrkCallback(this, &Launcher::waitForTrkFinished));
             }
             break;
@@ -554,7 +557,7 @@ void Launcher::startInferiorIfNeeded()
     // It's not started yet
     QByteArray ba;
     appendByte(&ba, 0); // ?
-    appendByte(&ba, 0); // ?
+    appendByte(&ba, 0); // create new process
     appendByte(&ba, 0); // ?
     appendString(&ba, d->m_fileName.toLocal8Bit(), TargetByteOrder);
     d->m_device.sendTrkMessage(TrkCreateItem, TrkCallback(this, &Launcher::handleCreateProcess), ba); // Create Item
-- 
GitLab