From 7ddf834b864c4df0b08ec904d792993c09ba22b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Tue, 13 Apr 2021 15:47:09 +0200 Subject: [PATCH] QNetworkInformation(Win): cleanup dtor I don't like how it looks, so make stop() work even if it's not monitoring so that the dtor can call it unconditionally, and without needing a CoUninitialize call of its own. Change-Id: I06832d7e1d34317ff49ea2c425c79588719d7cd0 Reviewed-by: Volker Hilsheimer --- ...orklistmanagernetworkinformationbackend.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp b/src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp index 207c82efd96..c6b0a6e79bd 100644 --- a/src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp +++ b/src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp @@ -305,10 +305,7 @@ QNetworkListManagerNetworkInformationBackend::~QNetworkListManagerNetworkInforma { if (comInitFailed) return; - if (monitoring) - stop(); - else - CoUninitialize(); + stop(); } void QNetworkListManagerNetworkInformationBackend::setConnectivity(NLM_CONNECTIVITY newConnectivity) @@ -354,12 +351,13 @@ bool QNetworkListManagerNetworkInformationBackend::start() void QNetworkListManagerNetworkInformationBackend::stop() { - Q_ASSERT(managerEvents); - Q_ASSERT(monitoring); - // Can return false but realistically shouldn't since that would break everything: - managerEvents->stop(); - monitoring = false; - managerEvents.Reset(); + if (monitoring) { + Q_ASSERT(managerEvents); + // Can return false but realistically shouldn't since that would break everything: + managerEvents->stop(); + monitoring = false; + managerEvents.Reset(); + } CoUninitialize(); comInitFailed = true; // we check this value in start() to see if we need to re-initialize