aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickshadereffect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickshadereffect.cpp')
-rw-r--r--src/quick/items/qquickshadereffect.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/quick/items/qquickshadereffect.cpp b/src/quick/items/qquickshadereffect.cpp
index 2a6d40c8aa..40a2942041 100644
--- a/src/quick/items/qquickshadereffect.cpp
+++ b/src/quick/items/qquickshadereffect.cpp
@@ -538,6 +538,14 @@ QQuickShaderEffect::~QQuickShaderEffect()
{
Q_D(QQuickShaderEffect);
d->inDestructor = true;
+
+ for (int i = 0; i < QQuickShaderEffectPrivate::NShader; ++i) {
+ d->disconnectSignals(QQuickShaderEffectPrivate::Shader(i));
+ d->clearMappers(QQuickShaderEffectPrivate::Shader(i));
+ }
+
+ delete d->m_mgr;
+ d->m_mgr = nullptr;
}
/*!
@@ -835,12 +843,7 @@ QQuickShaderEffectPrivate::QQuickShaderEffectPrivate()
QQuickShaderEffectPrivate::~QQuickShaderEffectPrivate()
{
- for (int i = 0; i < NShader; ++i) {
- disconnectSignals(Shader(i));
- clearMappers(Shader(i));
- }
-
- delete m_mgr;
+ Q_ASSERT(m_mgr == nullptr);
}
void QQuickShaderEffectPrivate::setFragmentShader(const QUrl &fileUrl)