diff options
-rw-r--r-- | src/libs/qmldebug/qmldebugclient.cpp | 3 | ||||
-rw-r--r-- | src/libs/qmldebug/qpacketprotocol.cpp | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/qmldebug/qmldebugclient.cpp b/src/libs/qmldebug/qmldebugclient.cpp index 126830ba13..9aa4883843 100644 --- a/src/libs/qmldebug/qmldebugclient.cpp +++ b/src/libs/qmldebug/qmldebugclient.cpp @@ -115,6 +115,9 @@ void QmlDebugConnectionPrivate::disconnected() delete protocol; protocol = 0; if (device) { + // Don't allow any "connected()" or "disconnected()" signals to be triggered anymore. + // As the protocol is gone this would lead to crashes. + device->disconnect(); // Don't immediately delete it as it may do some cleanup on returning from a signal. device->deleteLater(); device = 0; diff --git a/src/libs/qmldebug/qpacketprotocol.cpp b/src/libs/qmldebug/qpacketprotocol.cpp index 6ec50f7b02..3b5a8d8422 100644 --- a/src/libs/qmldebug/qpacketprotocol.cpp +++ b/src/libs/qmldebug/qpacketprotocol.cpp @@ -174,7 +174,6 @@ public Q_SLOTS: this, SLOT(aboutToClose())); QObject::disconnect(dev, SIGNAL(bytesWritten(qint64)), this, SLOT(bytesWritten(qint64))); - dev = 0; emit invalidPacket(); return; } |