summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/jobs/loadscenejob.cpp4
-rw-r--r--src/render/jobs/loadscenejob_p.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/render/jobs/loadscenejob.cpp b/src/render/jobs/loadscenejob.cpp
index 52b16b041..eca057723 100644
--- a/src/render/jobs/loadscenejob.cpp
+++ b/src/render/jobs/loadscenejob.cpp
@@ -104,7 +104,7 @@ void LoadSceneJob::run()
}
Q_D(LoadSceneJob);
- d->m_sceneSubtree = sceneSubTree;
+ d->m_sceneSubtree = std::unique_ptr<Qt3DCore::QEntity>(sceneSubTree);
d->m_status = finalStatus;
if (d->m_sceneSubtree) {
@@ -161,7 +161,7 @@ void LoadSceneJobPrivate::postFrame(Qt3DCore::QAspectManager *manager)
// any subtree it may hold
// Set clone of sceneTree in sceneComponent. This will move the sceneSubTree
// to the QCoreApplication thread which is where the frontend object tree lives.
- dNode->setSceneRoot(m_sceneSubtree);
+ dNode->setSceneRoot(m_sceneSubtree.release());
// Note: the status is set after the subtree so that bindinds depending on the status
// in the frontend will be consistent
diff --git a/src/render/jobs/loadscenejob_p.h b/src/render/jobs/loadscenejob_p.h
index 85282a21e..47287e109 100644
--- a/src/render/jobs/loadscenejob_p.h
+++ b/src/render/jobs/loadscenejob_p.h
@@ -16,6 +16,7 @@
//
#include <Qt3DCore/qaspectjob.h>
+#include <Qt3DCore/qentity.h>
#include <Qt3DCore/private/qaspectjob_p.h>
#include <Qt3DCore/qnodeid.h>
#include <Qt3DRender/qsceneloader.h>
@@ -45,7 +46,7 @@ public:
void postFrame(Qt3DCore::QAspectManager *manager) override;
- Qt3DCore::QEntity *m_sceneSubtree = nullptr;
+ std::unique_ptr<Qt3DCore::QEntity> m_sceneSubtree;
QSceneLoader::Status m_status = QSceneLoader::None;
Q_DECLARE_PUBLIC(LoadSceneJob)