diff --git a/src/network/socket/qlocalserver.cpp b/src/network/socket/qlocalserver.cpp index 72b6d5ec90b..c4b7287b769 100644 --- a/src/network/socket/qlocalserver.cpp +++ b/src/network/socket/qlocalserver.cpp @@ -197,7 +197,7 @@ qintptr QLocalServer::socketDescriptor() const return d->tcpServer.socketDescriptor(); #elif defined(Q_OS_WIN) const auto handle = d->connectionEventNotifier->handle(); - return handle != INVALID_HANDLE_VALUE ? qintptr(handle) : -1; + return handle ? qintptr(handle) : -1; #else return d->socketNotifier->socket(); #endif diff --git a/src/network/socket/qlocalserver_p.h b/src/network/socket/qlocalserver_p.h index f7afd5cd321..915018e8a8f 100644 --- a/src/network/socket/qlocalserver_p.h +++ b/src/network/socket/qlocalserver_p.h @@ -76,7 +76,7 @@ public: bool addListener(); std::vector> listeners; - HANDLE eventHandle; + HANDLE eventHandle = nullptr; QWinEventNotifier *connectionEventNotifier; #else void setError(const QString &function); diff --git a/src/network/socket/qlocalserver_win.cpp b/src/network/socket/qlocalserver_win.cpp index bc761b1e8f2..f075d0f0a16 100644 --- a/src/network/socket/qlocalserver_win.cpp +++ b/src/network/socket/qlocalserver_win.cpp @@ -215,7 +215,7 @@ bool QLocalServerPrivate::listen(const QString &name) // Use only one event for all listeners of one socket. // The idea is that listener events are rare, so polling all listeners once in a while is // cheap compared to waiting for N additional events in each iteration of the main loop. - eventHandle = CreateEvent(NULL, TRUE, FALSE, NULL); + eventHandle = CreateEvent(NULL, TRUE, FALSE, NULL); // If the function fails, the return value is NULL connectionEventNotifier = new QWinEventNotifier(eventHandle , q); q->connect(connectionEventNotifier, SIGNAL(activated(HANDLE)), q, SLOT(_q_onNewConnection())); @@ -282,6 +282,7 @@ void QLocalServerPrivate::closeServer() connectionEventNotifier->deleteLater(); connectionEventNotifier = 0; CloseHandle(eventHandle); + eventHandle = nullptr; for (size_t i = 0; i < listeners.size(); ++i) CloseHandle(listeners[i]->handle); listeners.clear();