diff options
author | Bea Lam <bea.lam@nokia.com> | 2009-11-11 01:52:27 (GMT) |
---|---|---|
committer | Bea Lam <bea.lam@nokia.com> | 2009-11-11 01:52:27 (GMT) |
commit | e053a16f2d07a9d95297cc9a5b3fd38c3a7a5d56 (patch) | |
tree | 2bdb8914bfd2986b8d165c71b6e9074a13f5e2b6 /src | |
parent | c44c19cb16e06625f5ee71493190ad4276e4d8ef (diff) | |
download | Qt-e053a16f2d07a9d95297cc9a5b3fd38c3a7a5d56.zip Qt-e053a16f2d07a9d95297cc9a5b3fd38c3a7a5d56.tar.gz Qt-e053a16f2d07a9d95297cc9a5b3fd38c3a7a5d56.tar.bz2 |
Fix debugger crash on exit
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/debugger/qmldebug.cpp | 9 |
1 files 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 |