aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2019-07-05 11:59:59 +0200
committerTim Jenssen <tim.jenssen@qt.io>2019-07-09 12:35:28 +0000
commitcd8b064d7674af3660cbda51836bf09aa1c9325f (patch)
treec8973db5eb073ef740722674923ca2aed28c93e4 /src
parentafc53cd54d90e9aa8eac72c9cb6be144baf2b96b (diff)
QmlDesigner: Fix potential crashes
Change-Id: Ieb3211090d16150943fd4d2dd15a4a63ecdae078 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp6
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp7
2 files changed, 10 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp b/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp
index ba520a1ca3..a1629c0b5b 100644
--- a/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp
+++ b/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp
@@ -179,6 +179,8 @@ void LayoutInGridLayout::doIt()
initializeCells();
markUsedCells();
+ QTC_ASSERT(m_parentNode.isValid(), return);
+
if (QmlItemNode::isValidQmlItemNode(m_selectionContext.firstSelectedModelNode())) {
const QmlItemNode qmlItemNode = QmlItemNode(m_selectionContext.firstSelectedModelNode());
@@ -256,6 +258,10 @@ void LayoutInGridLayout::collectItemNodes()
m_qmlItemNodes.append(itemNode);
}
}
+
+ if (m_qmlItemNodes.isEmpty())
+ return;
+
m_parentNode = m_qmlItemNodes.constFirst().instanceParentItem();
}
diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
index 53e29b7157..cc44f9c448 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
@@ -625,9 +625,10 @@ bool QmlObjectNode::hasInstanceParent() const
bool QmlObjectNode::hasInstanceParentItem() const
{
- return nodeInstance().parentId() >= 0
- && nodeInstanceView()->hasInstanceForId(nodeInstance().parentId())
- && QmlItemNode::isItemOrWindow(view()->modelNodeForInternalId(nodeInstance().parentId()));
+ return isValid()
+ && nodeInstance().parentId() >= 0
+ && nodeInstanceView()->hasInstanceForId(nodeInstance().parentId())
+ && QmlItemNode::isItemOrWindow(view()->modelNodeForInternalId(nodeInstance().parentId()));
}