diff options
author | Kaj Grönholm <kaj.gronholm@qt.io> | 2022-12-20 11:26:00 +0200 |
---|---|---|
committer | Kaj Grönholm <kaj.gronholm@qt.io> | 2022-12-22 00:12:24 +0200 |
commit | ae6546c240bd3beb9295b512996a115bcebb831a (patch) | |
tree | ced06559d8cf10aec7c753016d605ec03a1e69bb /src/quick/items/qquickitem.cpp | |
parent | 239082b5ad44adfe2711cd334da1a9d57dd79a6f (diff) |
Change asserts to runtime checking
In rare cases it is possible to get into situation where m_effect nor
m_effectSource exists at the time update* methods are reached.
Task-number: QTBUG-109506
Pick-to: 6.5 6.4
Change-Id: I74e9a156ae8e313b60243020a8c65b89770c27ce
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/quick/items/qquickitem.cpp')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index ccbb8c557f..5b293afaa3 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -9651,7 +9651,8 @@ void QQuickItemLayer::itemSiblingOrderChanged(QQuickItem *) void QQuickItemLayer::itemVisibilityChanged(QQuickItem *) { QQuickItem *l = m_effect ? (QQuickItem *) m_effect : (QQuickItem *) m_effectSource; - Q_ASSERT(l); + if (!l) + return; l->setVisible(m_item->isVisible()); } @@ -9660,21 +9661,24 @@ void QQuickItemLayer::updateZ() if (!m_componentComplete || !m_enabled) return; QQuickItem *l = m_effect ? (QQuickItem *) m_effect : (QQuickItem *) m_effectSource; - Q_ASSERT(l); + if (!l) + return; l->setZ(m_item->z()); } void QQuickItemLayer::updateOpacity() { QQuickItem *l = m_effect ? (QQuickItem *) m_effect : (QQuickItem *) m_effectSource; - Q_ASSERT(l); + if (!l) + return; l->setOpacity(m_item->opacity()); } void QQuickItemLayer::updateGeometry() { QQuickItem *l = m_effect ? (QQuickItem *) m_effect : (QQuickItem *) m_effectSource; - Q_ASSERT(l); + if (!l) + return; // Avoid calling QQuickImage::boundingRect() or other overrides // which may not be up-to-date at this time (QTBUG-104442, 104536) QRectF bounds = m_item->QQuickItem::boundingRect(); @@ -9689,7 +9693,8 @@ void QQuickItemLayer::updateMatrix() if (!m_componentComplete || !m_enabled) return; QQuickItem *l = m_effect ? (QQuickItem *) m_effect : (QQuickItem *) m_effectSource; - Q_ASSERT(l); + if (!l) + return; QQuickItemPrivate *ld = QQuickItemPrivate::get(l); l->setScale(m_item->scale()); l->setRotation(m_item->rotation()); |