From 5e28b995f5e43c6a908906966190f4ad594edede Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Mon, 18 May 2015 05:56:18 +0400 Subject: Do not initialize q_ptr in classes derived from QObjectPrivate QObject does that behind the scenes, in a proper way. Change-Id: I92561060757d36358d1e507f4335ca605f681678 Reviewed-by: Sean Harmer --- src/core/aspects/qabstractaspect.cpp | 5 ++--- src/core/aspects/qabstractaspect_p.h | 2 +- src/core/aspects/qaspectengine.cpp | 5 ++--- src/core/aspects/qaspectengine_p.h | 2 +- src/core/jobs/qaspectjobmanager.cpp | 5 ++--- src/core/jobs/qaspectjobmanager_p.h | 3 +-- src/core/nodes/qnode.cpp | 4 ++-- src/core/nodes/qnode_p.h | 2 +- src/core/qpostman.cpp | 5 ++--- src/input/qinputaspect.cpp | 6 +++--- src/input/qinputaspect_p.h | 2 +- src/quick3d/quick3d/qqmlaspectengine.cpp | 5 ++--- src/quick3d/quick3d/qqmlaspectengine_p.h | 4 ++-- src/render/backend/qrenderaspect.cpp | 8 ++++---- src/render/backend/qrenderaspect_p.h | 2 +- src/render/frontend/qopenglfilter.cpp | 6 ++---- src/render/frontend/qwrapmode.cpp | 8 +++----- 17 files changed, 32 insertions(+), 42 deletions(-) diff --git a/src/core/aspects/qabstractaspect.cpp b/src/core/aspects/qabstractaspect.cpp index 0330ccb8d..94e52c086 100644 --- a/src/core/aspects/qabstractaspect.cpp +++ b/src/core/aspects/qabstractaspect.cpp @@ -56,14 +56,13 @@ namespace Qt3D { \class Qt3D::QAbstractAspectPrivate \internal */ -QAbstractAspectPrivate::QAbstractAspectPrivate(QAbstractAspect *qq) +QAbstractAspectPrivate::QAbstractAspectPrivate() : QObjectPrivate() , m_root(Q_NULLPTR) , m_aspectManager(Q_NULLPTR) , m_jobManager(Q_NULLPTR) , m_arbiter(Q_NULLPTR) { - q_ptr = qq; } QAbstractAspectPrivate *QAbstractAspectPrivate::get(QAbstractAspect *aspect) @@ -77,7 +76,7 @@ QAbstractAspectPrivate *QAbstractAspectPrivate::get(QAbstractAspect *aspect) \brief QAbstractAspect is the base class for aspects that provide a vertical slice of behavior. */ QAbstractAspect::QAbstractAspect(AspectType aspectType, QObject *parent) - : QObject(*new QAbstractAspectPrivate(this), parent) + : QObject(*new QAbstractAspectPrivate, parent) { Q_D(QAbstractAspect); d->m_aspectType = aspectType; diff --git a/src/core/aspects/qabstractaspect_p.h b/src/core/aspects/qabstractaspect_p.h index 14cd1b95d..2ef8f82f3 100644 --- a/src/core/aspects/qabstractaspect_p.h +++ b/src/core/aspects/qabstractaspect_p.h @@ -55,7 +55,7 @@ class QChangeArbiter; class QT3DCORE_PRIVATE_EXPORT QAbstractAspectPrivate : public QObjectPrivate { public: - QAbstractAspectPrivate(QAbstractAspect *qq); + QAbstractAspectPrivate(); Q_DECLARE_PUBLIC(QAbstractAspect) diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp index 627925c97..1ef1d803a 100644 --- a/src/core/aspects/qaspectengine.cpp +++ b/src/core/aspects/qaspectengine.cpp @@ -59,12 +59,11 @@ namespace Qt3D { \class Qt3D::QAspectEnginePrivate \internal */ -QAspectEnginePrivate::QAspectEnginePrivate(QAspectEngine *qq) +QAspectEnginePrivate::QAspectEnginePrivate() : QObjectPrivate() , m_postman(Q_NULLPTR) , m_scene(Q_NULLPTR) { - q_ptr = qq; qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); @@ -72,7 +71,7 @@ QAspectEnginePrivate::QAspectEnginePrivate(QAspectEngine *qq) } QAspectEngine::QAspectEngine(QObject *parent) - : QObject(*new QAspectEnginePrivate(this), parent) + : QObject(*new QAspectEnginePrivate, parent) { // Don't show any debug output from Qt3D. If you need to enable additional logging // for debugging use a rules file as explained in the QLoggingCategory documentation. diff --git a/src/core/aspects/qaspectengine_p.h b/src/core/aspects/qaspectengine_p.h index adab34245..d2f2da88e 100644 --- a/src/core/aspects/qaspectengine_p.h +++ b/src/core/aspects/qaspectengine_p.h @@ -55,7 +55,7 @@ class QSceneInterface; class QAspectEnginePrivate : public QObjectPrivate { public: - QAspectEnginePrivate(QAspectEngine *qq); + QAspectEnginePrivate(); Q_DECLARE_PUBLIC(QAspectEngine) diff --git a/src/core/jobs/qaspectjobmanager.cpp b/src/core/jobs/qaspectjobmanager.cpp index c9c230d33..1488eed21 100644 --- a/src/core/jobs/qaspectjobmanager.cpp +++ b/src/core/jobs/qaspectjobmanager.cpp @@ -105,9 +105,8 @@ void SynchronizedJob::run(ThreadWeaver::JobPointer self, ThreadWeaver::Thread *t \class Qt3D::QAspectJobManagerPrivate \internal */ -QAspectJobManagerPrivate::QAspectJobManagerPrivate(QAspectJobManager *qq) +QAspectJobManagerPrivate::QAspectJobManagerPrivate() : QAbstractAspectJobManagerPrivate() - , q_ptr(qq) #ifdef THREAD_WEAVER , m_weaver(Q_NULLPTR) #endif @@ -120,7 +119,7 @@ QAspectJobManagerPrivate::~QAspectJobManagerPrivate() } QAspectJobManager::QAspectJobManager(QObject *parent) - : QAbstractAspectJobManager(*new QAspectJobManagerPrivate(this), parent) + : QAbstractAspectJobManager(*new QAspectJobManagerPrivate, parent) { Q_D(QAspectJobManager); #ifdef THREAD_WEAVER diff --git a/src/core/jobs/qaspectjobmanager_p.h b/src/core/jobs/qaspectjobmanager_p.h index 096c0470a..4d6e1feb3 100644 --- a/src/core/jobs/qaspectjobmanager_p.h +++ b/src/core/jobs/qaspectjobmanager_p.h @@ -57,11 +57,10 @@ class QAspectJobManager; class QAspectJobManagerPrivate : public QAbstractAspectJobManagerPrivate { public: - QAspectJobManagerPrivate(QAspectJobManager *qq); + QAspectJobManagerPrivate(); ~QAspectJobManagerPrivate(); Q_DECLARE_PUBLIC(QAspectJobManager) - QAspectJobManager *q_ptr; #ifdef THREAD_WEAVER // Owned by QAspectJobManager via QObject parent-child diff --git a/src/core/nodes/qnode.cpp b/src/core/nodes/qnode.cpp index da9d96679..53b1e8f77 100644 --- a/src/core/nodes/qnode.cpp +++ b/src/core/nodes/qnode.cpp @@ -67,7 +67,7 @@ QNodePrivate::QNodePrivate(QNode *qq) , m_propertyChangesSetup(false) , m_signals(this) { - q_ptr = qq; + Q_UNUSED(qq) // ### } // Called by QEvent::childAdded (main thread) @@ -325,7 +325,7 @@ void QNodePrivate::nodePtrDeleter(QNode *q) Creates a new Qt3D::QNode instance with parent \a parent. */ QNode::QNode(QNode *parent) - : QObject(*new QNodePrivate(this), parent) + : QObject(*new QNodePrivate, parent) { // We rely on QEvent::childAdded to be triggered on the parent // So we don't actually need to invoke a method or anything diff --git a/src/core/nodes/qnode_p.h b/src/core/nodes/qnode_p.h index 67f999f3e..34b413029 100644 --- a/src/core/nodes/qnode_p.h +++ b/src/core/nodes/qnode_p.h @@ -54,7 +54,7 @@ class QAspectEngine; class QT3DCORESHARED_EXPORT QNodePrivate : public QObjectPrivate, public QObservableInterface { public: - QNodePrivate(QNode *qq); + QNodePrivate(QNode *qq = Q_NULLPTR); void setScene(QSceneInterface *scene); QSceneInterface *scene() const; diff --git a/src/core/qpostman.cpp b/src/core/qpostman.cpp index 88054586e..d9a8738f7 100644 --- a/src/core/qpostman.cpp +++ b/src/core/qpostman.cpp @@ -49,11 +49,10 @@ namespace Qt3D { class QPostmanPrivate : public QObjectPrivate { public: - QPostmanPrivate(QPostman *qq) + QPostmanPrivate() : QObjectPrivate() , m_scene(Q_NULLPTR) { - q_ptr = qq; } Q_DECLARE_PUBLIC(QPostman) @@ -61,7 +60,7 @@ public: }; QPostman::QPostman(QObject *parent) - : QObject(*new QPostmanPrivate(this), parent) + : QObject(*new QPostmanPrivate, parent) { qRegisterMetaType("QSceneChangePtr"); } diff --git a/src/input/qinputaspect.cpp b/src/input/qinputaspect.cpp index 894e0d6b0..fc7fb8e8c 100644 --- a/src/input/qinputaspect.cpp +++ b/src/input/qinputaspect.cpp @@ -54,8 +54,8 @@ namespace Qt3D { \class Qt3D::QInputAspectPrivate \internal */ -QInputAspectPrivate::QInputAspectPrivate(QInputAspect *qq) - : QAbstractAspectPrivate(qq) +QInputAspectPrivate::QInputAspectPrivate() + : QAbstractAspectPrivate() , m_inputHandler(new Input::InputHandler()) , m_cameraController(new Input::CameraController()) { @@ -63,7 +63,7 @@ QInputAspectPrivate::QInputAspectPrivate(QInputAspect *qq) } QInputAspect::QInputAspect(QObject *parent) - : QAbstractAspect(*new QInputAspectPrivate(this), parent) + : QAbstractAspect(*new QInputAspectPrivate, parent) { registerBackendType(QBackendNodeFunctorPtr(new Input::KeyboardControllerFunctor(d_func()->m_inputHandler))); registerBackendType(QBackendNodeFunctorPtr(new Input::KeyboardInputFunctor(d_func()->m_inputHandler))); diff --git a/src/input/qinputaspect_p.h b/src/input/qinputaspect_p.h index 0faf4860f..3b618a147 100644 --- a/src/input/qinputaspect_p.h +++ b/src/input/qinputaspect_p.h @@ -55,7 +55,7 @@ class InputHandler; class QInputAspectPrivate : public QAbstractAspectPrivate { public: - QInputAspectPrivate(QInputAspect *qq); + QInputAspectPrivate(); Q_DECLARE_PUBLIC(QInputAspect) Input::InputHandler *m_inputHandler; diff --git a/src/quick3d/quick3d/qqmlaspectengine.cpp b/src/quick3d/quick3d/qqmlaspectengine.cpp index 335c76827..a05143f23 100644 --- a/src/quick3d/quick3d/qqmlaspectengine.cpp +++ b/src/quick3d/quick3d/qqmlaspectengine.cpp @@ -51,9 +51,8 @@ namespace Quick { \class Qt3D::Quick::QQmlAspectEnginePrivate \internal */ -QQmlAspectEnginePrivate::QQmlAspectEnginePrivate(QQmlAspectEngine *qq) +QQmlAspectEnginePrivate::QQmlAspectEnginePrivate() : QObjectPrivate() - , q_ptr(qq) , m_qmlEngine(new QQmlEngine()) , m_aspectEngine(new QAspectEngine()) , m_component(Q_NULLPTR) @@ -61,7 +60,7 @@ QQmlAspectEnginePrivate::QQmlAspectEnginePrivate(QQmlAspectEngine *qq) } QQmlAspectEngine::QQmlAspectEngine(QObject *parent) - : QObject(*new QQmlAspectEnginePrivate(this), parent) + : QObject(*new QQmlAspectEnginePrivate, parent) { } diff --git a/src/quick3d/quick3d/qqmlaspectengine_p.h b/src/quick3d/quick3d/qqmlaspectengine_p.h index 09ede1326..d79589a3e 100644 --- a/src/quick3d/quick3d/qqmlaspectengine_p.h +++ b/src/quick3d/quick3d/qqmlaspectengine_p.h @@ -51,10 +51,10 @@ namespace Quick { class QQmlAspectEnginePrivate : public QObjectPrivate { public: - QQmlAspectEnginePrivate(QQmlAspectEngine *qq); + QQmlAspectEnginePrivate(); Q_DECLARE_PUBLIC(QQmlAspectEngine) - QQmlAspectEngine *q_ptr; + QScopedPointer m_qmlEngine; QScopedPointer m_aspectEngine; QQmlComponent *m_component; diff --git a/src/render/backend/qrenderaspect.cpp b/src/render/backend/qrenderaspect.cpp index 672578b29..3a98ccc07 100644 --- a/src/render/backend/qrenderaspect.cpp +++ b/src/render/backend/qrenderaspect.cpp @@ -120,8 +120,8 @@ namespace Qt3D { \class Qt3D::QRenderAspectPrivate \internal */ -QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect::RenderType type, QRenderAspect *qq) - : QAbstractAspectPrivate(qq) +QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect::RenderType type) + : QAbstractAspectPrivate() , m_renderer(new Render::Renderer(type)) , m_surfaceEventFilter(new Render::PlatformSurfaceFilter(m_renderer)) , m_surface(Q_NULLPTR) @@ -168,7 +168,7 @@ void QRenderAspectPrivate::setSurface(QSurface *surface) } QRenderAspect::QRenderAspect(QObject *parent) - : QAbstractAspect(*new QRenderAspectPrivate(Threaded, this), parent) + : QAbstractAspect(*new QRenderAspectPrivate(Threaded), parent) { // Won't return until the private RenderThread in Renderer has been created // The Renderer is set to wait the surface with a wait condition @@ -177,7 +177,7 @@ QRenderAspect::QRenderAspect(QObject *parent) } QRenderAspect::QRenderAspect(QRenderAspect::RenderType type, QObject *parent) - : QAbstractAspect(*new QRenderAspectPrivate(type, this), parent) + : QAbstractAspect(*new QRenderAspectPrivate(type), parent) { registerBackendTypes(); } diff --git a/src/render/backend/qrenderaspect_p.h b/src/render/backend/qrenderaspect_p.h index 302e2be44..3ef3c9326 100644 --- a/src/render/backend/qrenderaspect_p.h +++ b/src/render/backend/qrenderaspect_p.h @@ -57,7 +57,7 @@ class Renderer; class QRenderAspectPrivate : public QAbstractAspectPrivate { - QRenderAspectPrivate(QRenderAspect::RenderType type, QRenderAspect *qq); + QRenderAspectPrivate(QRenderAspect::RenderType type); Q_DECLARE_PUBLIC(QRenderAspect) diff --git a/src/render/frontend/qopenglfilter.cpp b/src/render/frontend/qopenglfilter.cpp index b4b16981d..2c57daa3f 100644 --- a/src/render/frontend/qopenglfilter.cpp +++ b/src/render/frontend/qopenglfilter.cpp @@ -45,15 +45,13 @@ namespace Qt3D { class QOpenGLFilterPrivate : public QObjectPrivate { public: - - QOpenGLFilterPrivate(QOpenGLFilter *qq) + QOpenGLFilterPrivate() : QObjectPrivate() , m_api(QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGL ? QOpenGLFilter::Desktop : QOpenGLFilter::ES) , m_profile(QOpenGLFilter::None) // matches all (no profile, core, compat) , m_minor(0) , m_major(0) { - q_ptr = qq; } Q_DECLARE_PUBLIC(QOpenGLFilter) @@ -66,7 +64,7 @@ public: }; QOpenGLFilter::QOpenGLFilter(QObject *parent) - : QObject(*new QOpenGLFilterPrivate(this), parent) + : QObject(*new QOpenGLFilterPrivate, parent) { } diff --git a/src/render/frontend/qwrapmode.cpp b/src/render/frontend/qwrapmode.cpp index e73ff6541..a040183c4 100644 --- a/src/render/frontend/qwrapmode.cpp +++ b/src/render/frontend/qwrapmode.cpp @@ -44,9 +44,8 @@ namespace Qt3D { class QTextureWrapModePrivate : public QObjectPrivate { public: - QTextureWrapModePrivate(QTextureWrapMode *qq) + QTextureWrapModePrivate() : QObjectPrivate() - , q_ptr(qq) , m_x(QTextureWrapMode::ClampToEdge) , m_y(QTextureWrapMode::ClampToEdge) , m_z(QTextureWrapMode::ClampToEdge) @@ -54,7 +53,6 @@ public: } Q_DECLARE_PUBLIC(QTextureWrapMode) - QTextureWrapMode *q_ptr; QTextureWrapMode::WrapMode m_x; QTextureWrapMode::WrapMode m_y; QTextureWrapMode::WrapMode m_z; @@ -69,7 +67,7 @@ public: */ QTextureWrapMode::QTextureWrapMode(WrapMode wrapMode, QObject *parent) - : QObject(*new QTextureWrapModePrivate(this), parent) + : QObject(*new QTextureWrapModePrivate, parent) { d_func()->m_x = wrapMode; d_func()->m_y = wrapMode; @@ -81,7 +79,7 @@ QTextureWrapMode::QTextureWrapMode(WrapMode wrapMode, QObject *parent) each dimension \a x, \a y \a z of the texture and \a parent as parent. */ QTextureWrapMode::QTextureWrapMode(WrapMode x,WrapMode y, WrapMode z, QObject *parent) - : QObject(*new QTextureWrapModePrivate(this), parent) + : QObject(*new QTextureWrapModePrivate, parent) { d_func()->m_x = x; d_func()->m_y = y; -- cgit v1.2.3