diff options
Diffstat (limited to 'src/network/kernel/qnetconmonitor_win.cpp')
-rw-r--r-- | src/network/kernel/qnetconmonitor_win.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/network/kernel/qnetconmonitor_win.cpp b/src/network/kernel/qnetconmonitor_win.cpp index b543508169..a010df8e3a 100644 --- a/src/network/kernel/qnetconmonitor_win.cpp +++ b/src/network/kernel/qnetconmonitor_win.cpp @@ -99,7 +99,7 @@ QNetworkInterface getInterfaceFromHostAddress(const QHostAddress &local) } } // anonymous namespace -class QNetworkConnectionEvents final : public INetworkConnectionEvents +class QNetworkConnectionEvents : public INetworkConnectionEvents { public: QNetworkConnectionEvents(QNetworkConnectionMonitorPrivate *monitor); @@ -139,7 +139,7 @@ private: QNetworkConnectionMonitorPrivate *monitor = nullptr; - QAtomicInteger<ULONG> ref = 1; // start at 1 for our own initial reference + QAtomicInteger<ULONG> ref = 0; DWORD cookie = 0; }; @@ -346,6 +346,8 @@ QNetworkConnectionMonitorPrivate::~QNetworkConnectionMonitorPrivate() { if (comInitFailed) return; + if (monitoring) + stopMonitoring(); connectionEvents.Reset(); CoUninitialize(); } @@ -465,7 +467,7 @@ bool QNetworkConnectionMonitor::isReachable() return d_func()->connectivity & required; } -class QNetworkListManagerEvents final : public INetworkListManagerEvents +class QNetworkListManagerEvents : public INetworkListManagerEvents { public: QNetworkListManagerEvents(QNetworkStatusMonitorPrivate *monitor); @@ -496,7 +498,7 @@ private: QNetworkStatusMonitorPrivate *monitor = nullptr; - QAtomicInteger<ULONG> ref = 1; // start at 1 for our own initial reference + QAtomicInteger<ULONG> ref = 0; DWORD cookie = 0; }; |