From 40a6f0b1cad4274216e3a6c6759eeebc7b04494e Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Tue, 23 Oct 2012 21:15:06 +0200
Subject: [PATCH] Attach to Process: Fix crash

When a non-desktop kit has no device

Change-Id: I108f3f65d151183be1d40d659dc331e9bc57c48e
Reviewed-by: hjk <qthjk@ovi.com>
---
 .../devicesupport/deviceprocessesdialog.cpp               | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp
index 1a5aca4c792..7d7555ca256 100644
--- a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp
+++ b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp
@@ -204,6 +204,10 @@ DeviceProcessesDialogPrivate::DeviceProcessesDialogPrivate(KitChooser *chooser,
 void DeviceProcessesDialogPrivate::setDevice(const IDevice::ConstPtr &device)
 {
     delete processList;
+    processList = 0;
+    proxyModel.setSourceModel(0);
+    if (!device)
+        return;
 
     processList = device->createProcessListModel();
     QTC_ASSERT(processList, return);
@@ -246,7 +250,7 @@ void DeviceProcessesDialogPrivate::updateProcessList()
 void DeviceProcessesDialogPrivate::killProcess()
 {
     const QModelIndexList indexes = procView->selectionModel()->selectedIndexes();
-    if (indexes.empty())
+    if (indexes.empty() || !processList)
         return;
     updateListButton->setEnabled(false);
     killProcessButton->setEnabled(false);
@@ -275,7 +279,7 @@ void DeviceProcessesDialogPrivate::updateButtons()
 DeviceProcess DeviceProcessesDialogPrivate::selectedProcess() const
 {
     const QModelIndexList indexes = procView->selectionModel()->selectedIndexes();
-    if (indexes.empty())
+    if (indexes.empty() || !processList)
         return DeviceProcess();
     return processList->at(proxyModel.mapToSource(indexes.first()).row());
 }
-- 
GitLab