aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitem.cpp
diff options
context:
space:
mode:
authorKaj Grönholm <kaj.gronholm@qt.io>2022-12-20 11:26:00 +0200
committerKaj Grönholm <kaj.gronholm@qt.io>2022-12-22 00:12:24 +0200
commitae6546c240bd3beb9295b512996a115bcebb831a (patch)
treeced06559d8cf10aec7c753016d605ec03a1e69bb /src/quick/items/qquickitem.cpp
parent239082b5ad44adfe2711cd334da1a9d57dd79a6f (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.cpp15
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());