summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/qmldebug/qmldebugclient.cpp3
-rw-r--r--src/libs/qmldebug/qpacketprotocol.cpp1
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;
}