summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qlocalsocket_win.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/socket/qlocalsocket_win.cpp')
-rw-r--r--src/network/socket/qlocalsocket_win.cpp13
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