aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2020-10-14 11:06:01 +0200
committerMitch Curtis <mitch.curtis@qt.io>2020-10-19 09:32:38 +0200
commitd08bce267f2d7cba474a05d73869bc99fbd8d971 (patch)
tree6c8603b9a281334e36874f3728e58f676f828439 /src/quick/items
parent0f3df189e57d4c2bddce09380bbed8e0ed1fe2b7 (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. Fixes: QTBUG-86402 Change-Id: If4955445f7cc0d1f376bc9b86b95e1cca4d88ede Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 266cd7638d887b31d56964a0f13fe208821703b1) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/quick/items')
-rw-r--r--src/quick/items/qquickshadereffect.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp
index b3c8386fd9..8db4e7dc9e 100644
--- a/src/quick/items/qquickshadereffect.cpp
+++ b/src/quick/items/qquickshadereffect.cpp
@@ -868,7 +868,11 @@ void QQuickShaderEffect::itemChange(ItemChange change, const ItemChangeData &val
return;
}
#endif
- 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);
}