summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-05-17 19:41:35 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-05-20 18:18:27 +0000
commitc4ff7c7a417b1b1e6bb3e0099209cd4ff7a4d09d (patch)
tree55d0eef86cb5baefeb1eee7dfec6375be956ea87 /src
parent9ffb65683ae756697bfc98490d25c71e66fc77f8 (diff)
Only try to create render jobs if we have a settings object
Task-number: QTBUG-42353 Task-number: QTBUG-51035 Change-Id: Ic6ebaace64d314d23d85c38ed93029498167832f Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/render/frontend/qrenderaspect.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index fac2687bb..ee8df1992 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -303,8 +303,11 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
// 6 PickBoundingVolumeJob
// 7 Cleanup Job (depends on RV)
- // Create jobs to load in any meshes that are pending
- if (d->m_renderer != nullptr && d->m_renderer->isRunning()) {
+ // Ensure we have a settings object. It may get deleted by the call to
+ // QChangeArbiter::syncChanges() that happens just before the render aspect is
+ // asked for jobs to execute (this function). If that is the case, the RenderSettings will
+ // be null and we should not generate any jobs.
+ if (d->m_renderer != nullptr && d->m_renderer->isRunning() && d->m_renderer->settings()) {
// don't spawn any jobs, if the renderer decides to skip this frame
if (!d->m_renderer->shouldRender()) {
d->m_renderer->skipNextFrame();