diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2015-03-15 14:26:21 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-05-19 09:59:41 +0000 |
commit | cc5ca324a7ee2163ba9e342318e711d47871c65c (patch) | |
tree | 98fd717618aea3d25e053889ac902d6d8335a287 | |
parent | c09b9c5483302c76ef5d4601a69e83605878cdbd (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.cpp | 15 |
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 |