diff options
author | Fredrik Orderud <forderud@gmail.com> | 2015-10-28 16:04:19 +0100 |
---|---|---|
committer | Fredrik Orderud <forderud@gmail.com> | 2015-10-28 17:04:17 +0000 |
commit | 68d32040f688aeebb8236e13effcfd9da43de71c (patch) | |
tree | f077f58c2db74b3c8b577dee8357b2a7707984eb /src/quick3d/imports/scene3d | |
parent | 09ba2f8b9c360ad4d3cf8ebb04fbfc9c1c57cbe7 (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.cpp | 6 |
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(); } |