summaryrefslogtreecommitdiffstats
path: root/src/plugins/networkinformationbackends
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-04-13 15:47:09 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-04-14 07:51:38 +0000
commit7ddf834b864c4df0b08ec904d792993c09ba22b9 (patch)
treef32f03a9ad4730592f1f5681953ff0606ae0f3c3 /src/plugins/networkinformationbackends
parent62efc8990dcd57bafd5d368fd1945792ffb29ee0 (diff)
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 <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/plugins/networkinformationbackends')
-rw-r--r--src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp b/src/plugins/networkinformationbackends/networklistmanager/qnetworklistmanagernetworkinformationbackend.cpp
index 207c82efd9..c6b0a6e79b 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