From 1ccd4d6900fae3b4a7dac11c69fafea17692b02d Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 20 Sep 2018 10:04:21 +0200 Subject: QPacketProtocol: Remove aboutToClose() method It doesn't serve any useful purpose. The cleanup is done on destruction anyway, and re-opening the underlying device after it was closed isn't supported. Furthermore, clearing the sendingPackets leads to a crash when the device sends another bytesWritten() signal after aboutToClose(). That can happen, for example with local sockets on windows, when flushing the remaining data. Fixes: QTBUG-70638 Change-Id: Icd636efc9794a127a3869a1c3e999d2286593067 Reviewed-by: Simon Hausmann --- src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp | 13 ------------- src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h | 1 - 2 files changed, 14 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp b/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp index c256501301..3e75e39f86 100644 --- a/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp +++ b/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp @@ -128,7 +128,6 @@ QPacketProtocol::QPacketProtocol(QIODevice *dev, QObject *parent) Q_ASSERT(dev); QObject::connect(dev, &QIODevice::readyRead, this, &QPacketProtocol::readyToRead); - QObject::connect(dev, &QIODevice::aboutToClose, this, &QPacketProtocol::aboutToClose); QObject::connect(dev, &QIODevice::bytesWritten, this, &QPacketProtocol::bytesWritten); } @@ -209,17 +208,6 @@ bool QPacketProtocol::waitForReadyRead(int msecs) } while (true); } -/*! - Return the QIODevice passed to the QPacketProtocol constructor. -*/ -void QPacketProtocol::aboutToClose() -{ - Q_D(QPacketProtocol); - d->inProgress.clear(); - d->sendingPackets.clear(); - d->inProgressSize = -1; -} - void QPacketProtocol::bytesWritten(qint64 bytes) { Q_D(QPacketProtocol); @@ -257,7 +245,6 @@ void QPacketProtocol::readyToRead() // Check sizing constraints if (d->inProgressSize < qint32(sizeof(qint32))) { disconnect(d->dev, &QIODevice::readyRead, this, &QPacketProtocol::readyToRead); - disconnect(d->dev, &QIODevice::aboutToClose, this, &QPacketProtocol::aboutToClose); disconnect(d->dev, &QIODevice::bytesWritten, this, &QPacketProtocol::bytesWritten); d->dev = nullptr; emit error(); diff --git a/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h b/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h index a478fc9996..b401a58437 100644 --- a/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h +++ b/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h @@ -75,7 +75,6 @@ Q_SIGNALS: void error(); private: - void aboutToClose(); void bytesWritten(qint64 bytes); void readyToRead(); }; -- cgit v1.2.3