diff options
author | Wieland Hagen <wieland.hagen@kdab.com> | 2016-06-23 14:52:59 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-06-23 15:40:00 +0000 |
commit | fc1e70e36f38df32f0db0be78a75096b5c857e78 (patch) | |
tree | 1960e937f16ff3f5c1fc0e0d2920b9f80a4d85ea /src/render/jobs | |
parent | 5775579e74b66185e77cfc30b0af8cc94a9141cb (diff) |
Fix seg-fault on invalid scene load
Task-number: QTBUG-52917
Change-Id: Ife23a6fdd0e7c29379b0209fab5d47d6b6ffa315
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/jobs')
-rw-r--r-- | src/render/jobs/loadscenejob.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/render/jobs/loadscenejob.cpp b/src/render/jobs/loadscenejob.cpp index 3eb6e5e14..d0d8be9ef 100644 --- a/src/render/jobs/loadscenejob.cpp +++ b/src/render/jobs/loadscenejob.cpp @@ -67,16 +67,19 @@ void LoadSceneJob::run() if (!sceneIOHandler->isFileTypeSupported(m_source)) continue; - // File type is supported + // File type is supported, try to load it sceneIOHandler->setSource(m_source); - sceneSubTree = sceneIOHandler->scene(); - break; + Qt3DCore::QEntity *sub = sceneIOHandler->scene(); + if (sub) { + sceneSubTree = sub; + break; + } } // Set clone of sceneTree in sceneComponent. This will move the sceneSubTree // to the QCoreApplication thread which is where the frontend object tree lives. Scene *scene = m_managers->sceneManager()->lookupResource(m_sceneComponent); - if (scene) + if (scene && sceneSubTree) scene->setSceneSubtree(sceneSubTree); } |