diff options
Diffstat (limited to 'src/network/socket/qlocalsocket_win.cpp')
-rw-r--r-- | src/network/socket/qlocalsocket_win.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index 59d628d4d6..bd299d6cf5 100644 --- a/src/network/socket/qlocalsocket_win.cpp +++ b/src/network/socket/qlocalsocket_win.cpp @@ -161,15 +161,9 @@ QLocalSocketPrivate::QLocalSocketPrivate() : QIODevicePrivate(), QLocalSocketPrivate::~QLocalSocketPrivate() { - destroyPipeHandles(); -} - -void QLocalSocketPrivate::destroyPipeHandles() -{ - if (handle != INVALID_HANDLE_VALUE) { - DisconnectNamedPipe(handle); - CloseHandle(handle); - } + Q_ASSERT(state == QLocalSocket::UnconnectedState); + Q_ASSERT(handle == INVALID_HANDLE_VALUE); + Q_ASSERT(pipeWriter == nullptr); } void QLocalSocket::connectToServer(OpenMode openMode) @@ -346,8 +340,11 @@ void QLocalSocketPrivate::_q_pipeClosed() pipeReader->stop(); delete pipeWriter; pipeWriter = nullptr; - destroyPipeHandles(); - handle = INVALID_HANDLE_VALUE; + if (handle != INVALID_HANDLE_VALUE) { + DisconnectNamedPipe(handle); + CloseHandle(handle); + handle = INVALID_HANDLE_VALUE; + } state = QLocalSocket::UnconnectedState; emit q->stateChanged(state); |