diff options
Diffstat (limited to 'src/network/socket/qlocalsocket_win.cpp')
-rw-r--r-- | src/network/socket/qlocalsocket_win.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/network/socket/qlocalsocket_win.cpp b/src/network/socket/qlocalsocket_win.cpp index 48ffd87beb..2599a38a36 100644 --- a/src/network/socket/qlocalsocket_win.cpp +++ b/src/network/socket/qlocalsocket_win.cpp @@ -207,6 +207,12 @@ qint64 QLocalSocket::readData(char *data, qint64 maxSize) qint64 QLocalSocket::writeData(const char *data, qint64 len) { Q_D(QLocalSocket); + if (!isValid()) { + d->error = OperationError; + d->errorString = tr("Socket is not connected"); + return -1; + } + if (len == 0) return 0; d->writeBuffer.append(data, len); @@ -249,13 +255,10 @@ void QLocalSocketPrivate::_q_pipeClosed() emit q->disconnected(); pipeReader->stop(); + delete pipeWriter; + pipeWriter = nullptr; destroyPipeHandles(); handle = INVALID_HANDLE_VALUE; - - if (pipeWriter) { - delete pipeWriter; - pipeWriter = 0; - } } qint64 QLocalSocket::bytesAvailable() const |