From fff4c2b2339cdfec4c5116ec01c5e16ea5a0946a Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Wed, 22 Sep 2010 17:38:08 +0200
Subject: [PATCH] QmlDesigner: avoid crash

There can be notifications from the instance
after a model node has been deleted.
We now ignore those.
---
 .../designercore/instances/nodeinstancesignalspy.cpp            | 2 +-
 .../qmldesigner/designercore/instances/nodeinstanceview.cpp     | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp
index d47bf05fe37..70a10a7544a 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstancesignalspy.cpp
@@ -79,7 +79,7 @@ int NodeInstanceSignalSpy::qt_metacall(QMetaObject::Call call, int methodId, voi
     if (call == QMetaObject::InvokeMetaMethod && methodId > QObject::staticMetaObject.methodCount()) {
         ObjectNodeInstance::Pointer nodeInstance = m_objectNodeInstance.toStrongRef();
 
-        if (nodeInstance && nodeInstance->nodeInstanceView()) {
+        if (nodeInstance && nodeInstance->nodeInstanceView() && nodeInstance->modelNode().isValid()) {
             nodeInstance->nodeInstanceView()->notifyPropertyChange(nodeInstance->modelNode(), m_indexPropertyHash.value(methodId));
         }
 
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index 5acfb026a2e..1ae3e051f55 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -568,6 +568,8 @@ void NodeInstanceView::notifyPropertyChange(const ModelNode &node, const QString
 {
     if (m_blockStatePropertyChanges)
         return;
+    if (!node.isValid())
+        return;
 
     emitInstancePropertyChange(QList<QPair<ModelNode, QString> >() << qMakePair(node, propertyName));
 }
-- 
GitLab