From 90a812a8a8018bbe18b7ecf075778181bc96a9ec Mon Sep 17 00:00:00 2001
From: Christiaan Janssen <christiaan.janssen@nokia.com>
Date: Thu, 18 Aug 2011 11:41:42 +0200
Subject: [PATCH] QmlLivePreview: fix crash when inserting node with no parents

Change-Id: Ib781f64aed11aafc106dc15b40689181fefd5dd3
Reviewed-on: http://codereview.qt.nokia.com/3171
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
---
 src/libs/qmljs/qmljsdelta.cpp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/libs/qmljs/qmljsdelta.cpp b/src/libs/qmljs/qmljsdelta.cpp
index 56c3336fd83..c385284d28c 100644
--- a/src/libs/qmljs/qmljsdelta.cpp
+++ b/src/libs/qmljs/qmljsdelta.cpp
@@ -511,13 +511,15 @@ Delta::DebugIdMap Delta::operator()(const Document::Ptr &doc1, const Document::P
 
         if (!M.way2.contains(y)) {
             UiObjectMember* parent = parents2.parent.value(y);
-            if ( parent->kind == QmlJS::AST::Node::Kind_UiArrayBinding )
-                parent = parents2.parent.value(parent);
-
-            if (M.way2.contains(parent) && newDebuggIds.value(parent).count() > 0) {
-                if (debug)
-                    qDebug () << "Delta::operator():  insert " << label(y, doc2) << " to " << label(parent, doc2);
-                insert(y, parent, newDebuggIds.value(parent), doc2);
+            if (parent) {
+                if ( parent->kind == QmlJS::AST::Node::Kind_UiArrayBinding )
+                    parent = parents2.parent.value(parent);
+
+                if (M.way2.contains(parent) && newDebuggIds.value(parent).count() > 0) {
+                    if (debug)
+                        qDebug () << "Delta::operator():  insert " << label(y, doc2) << " to " << label(parent, doc2);
+                    insert(y, parent, newDebuggIds.value(parent), doc2);
+                }
             }
             continue;
         }
-- 
GitLab