From e053a16f2d07a9d95297cc9a5b3fd38c3a7a5d56 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 11 Nov 2009 11:52:27 +1000 Subject: Fix debugger crash on exit --- src/declarative/debugger/qmldebug.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/declarative/debugger/qmldebug.cpp b/src/declarative/debugger/qmldebug.cpp index 326c933..72f613a 100644 --- a/src/declarative/debugger/qmldebug.cpp +++ b/src/declarative/debugger/qmldebug.cpp @@ -428,13 +428,15 @@ void QmlEngineDebug::removeWatch(QmlDebugWatch *watch) { Q_D(QmlEngineDebug); - if (!watch || watch->state() == QmlDebugWatch::Dead) + if (!watch || !watch->m_client) return; - watch->setState(QmlDebugWatch::Dead); + watch->m_client = 0; + watch->setState(QmlDebugWatch::Inactive); + d->watched.remove(watch->queryId()); - if (d->client->isConnected()) { + if (d->client && d->client->isConnected()) { QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("NO_WATCH") << watch->queryId(); @@ -562,7 +564,6 @@ QmlDebugWatch::QmlDebugWatch(QObject *parent) QmlDebugWatch::~QmlDebugWatch() { - m_client->removeWatch(this); } int QmlDebugWatch::queryId() const -- cgit v0.12