diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2020-10-14 11:06:01 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2020-10-15 11:12:49 +0200 |
commit | 266cd7638d887b31d56964a0f13fe208821703b1 (patch) | |
tree | 8d88f95fdc1a70ac6b899af012c617ea83dd1df8 /src/quick/items/qquickshadereffect.cpp | |
parent | 678d4ec4b68d43d0c748a8ec62a13716f83a27cf (diff) |
QQuickShaderEffect: fix crash when hiding parent
It's possible for itemChange to be called during destruction when
deleting the QQuickShaderEffectImpl. We nullify m_impl before deleting
it via another pointer to it, so we must check that it's not null
before trying to use it.
Pick-to: 5.15
Fixes: QTBUG-86402
Change-Id: If4955445f7cc0d1f376bc9b86b95e1cca4d88ede
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/quick/items/qquickshadereffect.cpp')
-rw-r--r-- | src/quick/items/qquickshadereffect.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp index 1e0e6c60b8..3ae342b475 100644 --- a/src/quick/items/qquickshadereffect.cpp +++ b/src/quick/items/qquickshadereffect.cpp @@ -735,7 +735,11 @@ void QQuickShaderEffect::componentComplete() void QQuickShaderEffect::itemChange(ItemChange change, const ItemChangeData &value) { - m_impl->handleItemChange(change, value); + // It's possible for itemChange to be called during destruction when deleting + // the QQuickShaderEffectImpl. We nullify m_impl before deleting it via another pointer + // to it, so we must check that it's not null before trying to use it here. + if (m_impl) + m_impl->handleItemChange(change, value); QQuickItem::itemChange(change, value); } |