diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2012-05-17 11:02:59 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-18 10:36:42 +0200 |
commit | 276a86592a529eb0a1659764acaa4cf9f5e112a0 (patch) | |
tree | bf078acf86a4249b23b7cf048f6c5add3bbe2741 /src/corelib/kernel/qobject.cpp | |
parent | 6d7b003ac8381cf2af6ebcd255786d8e3afd21b8 (diff) |
Encapsulate the dynamic meta object pointer
This change allows us to delay creating the actual meta object
until it is actually required.
Change-Id: I1c4a4226bd82fa606b206dd60322f49b49c32463
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 29a4767d28..ca103f0f3e 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -187,6 +187,11 @@ int (*QAbstractDeclarativeData::receivers)(QAbstractDeclarativeData *, const QO QObjectData::~QObjectData() {} +QMetaObject *QObjectData::dynamicMetaObject() const +{ + return metaObject->toDynamicMetaObject(q_ptr); +} + QObjectPrivate::QObjectPrivate(int version) : threadData(0), connectionLists(0), senders(0), currentSender(0), currentChildBeingDeleted(0) { @@ -227,7 +232,8 @@ QObjectPrivate::~QObjectPrivate() threadData->deref(); - delete static_cast<QAbstractDynamicMetaObject*>(metaObject); + if (metaObject) metaObject->objectDestroyed(q_ptr); + #ifndef QT_NO_USERDATA if (extraData) qDeleteAll(extraData->userData); |