summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d
diff options
context:
space:
mode:
authorFredrik Orderud <forderud@gmail.com>2015-10-28 16:04:19 +0100
committerFredrik Orderud <forderud@gmail.com>2015-10-28 17:04:17 +0000
commit68d32040f688aeebb8236e13effcfd9da43de71c (patch)
treef077f58c2db74b3c8b577dee8357b2a7707984eb /src/quick3d/imports/scene3d
parent09ba2f8b9c360ad4d3cf8ebb04fbfc9c1c57cbe7 (diff)
Fix Scene3DRenderer crash during destruction.
Occurs when destroying a QQuickWindow containing a Qt3d scene. Change-Id: Id951241a34bbac401b52f1f78586037859981e4b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/quick3d/imports/scene3d')
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp
index 32264d4b3..b8f590d84 100644
--- a/src/quick3d/imports/scene3d/scene3ditem.cpp
+++ b/src/quick3d/imports/scene3d/scene3ditem.cpp
@@ -229,7 +229,8 @@ public Q_SLOTS:
// Shutdown the Renderer Aspect while the OpenGL context
// is still valid
- m_renderAspect->renderShutdown();
+ if (m_renderAspect)
+ m_renderAspect->renderShutdown();
}
// SGThread
@@ -721,8 +722,9 @@ void Scene3DSGMaterialShader::updateState(const RenderState &state, QSGMaterial
void Scene3DCleaner::cleanup()
{
Q_ASSERT(m_renderer);
- delete m_renderer->m_aspectEngine;
+ delete m_renderer->m_aspectEngine; // also deletes m_renderer->m_renderAspect
m_renderer->m_aspectEngine = Q_NULLPTR;
+ m_renderer->m_renderAspect = Q_NULLPTR;
m_renderer->deleteLater();
deleteLater();
}