From b4dc4a98d5deffbbb30f7011f6c0d3d10f430b98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Tue, 9 Jun 2015 17:15:45 +0200 Subject: Fix crash caused by wrongly asserting in the scene position listener. When clicking the back button in a textfield we would wrongly trigger two different asserts. One because the items parent changed, which is possible, and another when both item and child/parent item was null. Task-number: QTBUG-46573 Change-Id: Ia5fae95d31919de81a81ab6ef1304ea1e5ae9d60 Reviewed-by: J-P Nurmi --- src/controls/Private/qquicksceneposlistener.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/controls/Private/qquicksceneposlistener.cpp b/src/controls/Private/qquicksceneposlistener.cpp index d6155fe1..6bcc1deb 100644 --- a/src/controls/Private/qquicksceneposlistener.cpp +++ b/src/controls/Private/qquicksceneposlistener.cpp @@ -128,8 +128,6 @@ void QQuickScenePosListener::itemGeometryChanged(QQuickItem *, const QRectF &, c void QQuickScenePosListener::itemParentChanged(QQuickItem *, QQuickItem *parent) { - Q_ASSERT(m_item == parent); - addAncestorListeners(parent); } @@ -165,7 +163,8 @@ void QQuickScenePosListener::updateScenePos() */ void QQuickScenePosListener::removeAncestorListeners(QQuickItem *item) { - Q_ASSERT(item != m_item); + if (item == m_item) + return; QQuickItem *p = item; while (p != 0) { @@ -181,7 +180,8 @@ void QQuickScenePosListener::removeAncestorListeners(QQuickItem *item) */ void QQuickScenePosListener::addAncestorListeners(QQuickItem *item) { - Q_ASSERT(item != m_item); + if (item == m_item) + return; QQuickItem *p = item; while (p != 0) { -- cgit v1.2.1