summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-03-15 14:26:21 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2015-05-19 09:59:41 +0000
commitcc5ca324a7ee2163ba9e342318e711d47871c65c (patch)
tree98fd717618aea3d25e053889ac902d6d8335a287
parentc09b9c5483302c76ef5d4601a69e83605878cdbd (diff)
[QAspectEngine] Initialize properly and do not leak resources
Change-Id: I04b9c4a2cfd43dc840b8f2b700ed74052582bc99 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/core/aspects/qaspectengine.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp
index 82b06866a..627925c97 100644
--- a/src/core/aspects/qaspectengine.cpp
+++ b/src/core/aspects/qaspectengine.cpp
@@ -61,11 +61,10 @@ namespace Qt3D {
*/
QAspectEnginePrivate::QAspectEnginePrivate(QAspectEngine *qq)
: QObjectPrivate()
- , m_postman(new QPostman())
- , m_scene(new QScene(qq))
+ , m_postman(Q_NULLPTR)
+ , m_scene(Q_NULLPTR)
{
q_ptr = qq;
- m_postman->setScene(m_scene);
qRegisterMetaType<Qt3D::QAbstractAspect *>();
qRegisterMetaType<Qt3D::QObserverInterface *>();
qRegisterMetaType<Qt3D::QEntity *>();
@@ -81,6 +80,9 @@ QAspectEngine::QAspectEngine(QObject *parent)
qCDebug(Aspects) << Q_FUNC_INFO;
Q_D(QAspectEngine);
+ d->m_scene = new QScene(this);
+ d->m_postman = new QPostman(this);
+ d->m_postman->setScene(d->m_scene);
d->m_aspectThread = new QAspectThread(this);
d->m_aspectThread->waitForStart(QThread::HighestPriority);
}
@@ -90,13 +92,20 @@ QAspectEngine::QAspectEngine(QAspectEnginePrivate &dd, QObject *parent)
: QObject(dd, parent)
{
Q_D(QAspectEngine);
+ d->m_scene = new QScene(this);
+ d->m_postman = new QPostman(this);
+ d->m_postman->setScene(d->m_scene);
d->m_aspectThread = new QAspectThread(this);
d->m_aspectThread->waitForStart(QThread::HighestPriority);
}
QAspectEngine::~QAspectEngine()
{
+ Q_D(QAspectEngine);
shutdown();
+ delete d->m_aspectThread;
+ delete d->m_postman;
+ delete d->m_scene;
}
void QAspectEngine::initNodeTree(QNode *node) const