From 41a2ce871eb498758802e71c4cf46ad5d7d2b44c Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 4 Jun 2017 18:41:46 +0300 Subject: [PATCH] BareMetal: Fix crash on shutdown BareMetal is destroyed before ProjectExplorer. When DeviceManager clears its device list, it calls the devices' dtors, which in turn call GdbServerProviderManager::findProvider in order to unregister. Since m_instance is already null at this point, this leads to a crash. Change-Id: I1075433cad5579febddf79b463ffe12cdb75a85c Reviewed-by: Denis Shienkov Reviewed-by: Tobias Hunger Reviewed-by: Tim Sander Reviewed-by: Orgad Shaneh --- src/plugins/baremetal/gdbserverprovidermanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/baremetal/gdbserverprovidermanager.cpp b/src/plugins/baremetal/gdbserverprovidermanager.cpp index 6085a513221..84af4b5c3f9 100644 --- a/src/plugins/baremetal/gdbserverprovidermanager.cpp +++ b/src/plugins/baremetal/gdbserverprovidermanager.cpp @@ -161,7 +161,7 @@ QList GdbServerProviderManager::factories() GdbServerProvider *GdbServerProviderManager::findProvider(const QString &id) { - if (id.isEmpty()) + if (id.isEmpty() || !m_instance) return 0; return Utils::findOrDefault(m_instance->m_providers, Utils::equal(&GdbServerProvider::id, id));