summaryrefslogtreecommitdiffstats
path: root/src/render/jobs/loadscenejob.cpp
diff options
context:
space:
mode:
authorWieland Hagen <wieland.hagen@kdab.com>2016-06-23 14:52:59 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-06-23 15:40:00 +0000
commitfc1e70e36f38df32f0db0be78a75096b5c857e78 (patch)
tree1960e937f16ff3f5c1fc0e0d2920b9f80a4d85ea /src/render/jobs/loadscenejob.cpp
parent5775579e74b66185e77cfc30b0af8cc94a9141cb (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/loadscenejob.cpp')
-rw-r--r--src/render/jobs/loadscenejob.cpp11
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);
}