diff --git a/src/plugins/debugger/qml/qmlinspectoragent.cpp b/src/plugins/debugger/qml/qmlinspectoragent.cpp index 64bd8cb089348a4b8fcde915dcbc4b2e74bb6f27..70d48f5b867975dd22ac18e41b460123863055d5 100644 --- a/src/plugins/debugger/qml/qmlinspectoragent.cpp +++ b/src/plugins/debugger/qml/qmlinspectoragent.cpp @@ -738,6 +738,7 @@ void QmlInspectorAgent::addWatchData(const ObjectReference &obj, bool append) { qCDebug(qmlInspectorLog) << '(' << obj << parentIname << ')'; + QTC_ASSERT(m_debuggerEngine, return); int objDebugId = obj.debugId(); QByteArray objIname = buildIName(parentIname, objDebugId); @@ -831,7 +832,8 @@ bool QmlInspectorAgent::isConnected() const void QmlInspectorAgent::clearObjectTree() { - m_debuggerEngine->watchHandler()->removeAllData(true); + if (m_debuggerEngine) + m_debuggerEngine->watchHandler()->removeAllData(true); m_objectTreeQueryIds.clear(); m_fetchDataIds.clear(); int old_count = m_debugIdHash.count(); diff --git a/src/plugins/debugger/qml/qmlinspectoragent.h b/src/plugins/debugger/qml/qmlinspectoragent.h index 4719ed2782abfa8d01284d3c497da9ae5cab9338..979a9d356308f8ce1cfdd0791f1262710c3ad3b8 100644 --- a/src/plugins/debugger/qml/qmlinspectoragent.h +++ b/src/plugins/debugger/qml/qmlinspectoragent.h @@ -32,6 +32,7 @@ #define QMLINSPECTORAGENT_H #include <QStack> +#include <QPointer> #include <QTimer> #include <qmldebug/baseenginedebugclient.h> @@ -126,7 +127,7 @@ private: void clearObjectTree(); private: - DebuggerEngine *m_debuggerEngine; + QPointer<DebuggerEngine> m_debuggerEngine; QmlDebug::BaseEngineDebugClient *m_engineClient; quint32 m_engineQueryId;