diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2021-04-13 15:47:09 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2021-04-14 07:51:38 +0000 |
commit | 7ddf834b864c4df0b08ec904d792993c09ba22b9 (patch) | |
tree | f32f03a9ad4730592f1f5681953ff0606ae0f3c3 /src/plugins/networkinformationbackends | |
parent | 62efc8990dcd57bafd5d368fd1945792ffb29ee0 (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.cpp | 18 |
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 |