QmlInspector: Fix crash on engine ramp down

Task-number: QTCREATORBUG-14972
Change-Id: Ia2a508fab872ac4496c2cb3fa932186e8e29278d
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
hjk
2015-08-26 10:52:04 +02:00
parent 474ef4b4ef
commit fdbee2783a
2 changed files with 5 additions and 2 deletions

View File

@@ -738,6 +738,7 @@ void QmlInspectorAgent::addWatchData(const ObjectReference &obj,
bool append) bool append)
{ {
qCDebug(qmlInspectorLog) << '(' << obj << parentIname << ')'; qCDebug(qmlInspectorLog) << '(' << obj << parentIname << ')';
QTC_ASSERT(m_debuggerEngine, return);
int objDebugId = obj.debugId(); int objDebugId = obj.debugId();
QByteArray objIname = buildIName(parentIname, objDebugId); QByteArray objIname = buildIName(parentIname, objDebugId);
@@ -831,7 +832,8 @@ bool QmlInspectorAgent::isConnected() const
void QmlInspectorAgent::clearObjectTree() void QmlInspectorAgent::clearObjectTree()
{ {
m_debuggerEngine->watchHandler()->removeAllData(true); if (m_debuggerEngine)
m_debuggerEngine->watchHandler()->removeAllData(true);
m_objectTreeQueryIds.clear(); m_objectTreeQueryIds.clear();
m_fetchDataIds.clear(); m_fetchDataIds.clear();
int old_count = m_debugIdHash.count(); int old_count = m_debugIdHash.count();

View File

@@ -32,6 +32,7 @@
#define QMLINSPECTORAGENT_H #define QMLINSPECTORAGENT_H
#include <QStack> #include <QStack>
#include <QPointer>
#include <QTimer> #include <QTimer>
#include <qmldebug/baseenginedebugclient.h> #include <qmldebug/baseenginedebugclient.h>
@@ -126,7 +127,7 @@ private:
void clearObjectTree(); void clearObjectTree();
private: private:
DebuggerEngine *m_debuggerEngine; QPointer<DebuggerEngine> m_debuggerEngine;
QmlDebug::BaseEngineDebugClient *m_engineClient; QmlDebug::BaseEngineDebugClient *m_engineClient;
quint32 m_engineQueryId; quint32 m_engineQueryId;