From ccc46bbe46f6385968f5e4fb71bb20a4fc37f73a Mon Sep 17 00:00:00 2001
From: Eike Ziller <eike.ziller@qt.io>
Date: Tue, 28 Jun 2016 13:28:28 +0200
Subject: [PATCH] Fix crashes with (Runnable|Connection)::is<T>()

Another regression of 3f11ef92167
Default constructed Runnables/Connections have zero d pointer.

Task-number: QTCREATORBUG-16507
Change-Id: I230b661eba4c408a353a711f93f3163160980793
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: hjk <hjk@theqtcompany.com>
---
 src/plugins/projectexplorer/runconfiguration.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 225c04bf437..fd4fa288429 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -195,7 +195,7 @@ public:
     void operator=(Runnable other) { d = std::move(other.d); }
 
     template <class T> bool is() const {
-        return d.get()->typeId() == T::staticTypeId;
+        return d.get() && (d.get()->typeId() == T::staticTypeId);
     }
 
     template <class T> const T &as() const {
@@ -219,7 +219,7 @@ public:
     void operator=(Connection other) { d = std::move(other.d); }
 
     template <class T> bool is() const {
-        return d.get()->typeId() == T::staticTypeId;
+        return d.get() && (d.get()->typeId() == T::staticTypeId);
     }
 
     template <class T> const T &as() const {
-- 
GitLab