diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-05-17 17:39:46 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-21 03:10:45 +0200 |
commit | 11fa02c5cda08ea8eb83d61113c7fb1571d8e7b2 (patch) | |
tree | c2b40fac9f6e1b53dbaf0632f037477862d61e8e /src/corelib/kernel/qobject_p.h | |
parent | 0b8021f5cb64d751c694b976d09b0f89017b14e4 (diff) |
Move rarely used QObjectPrivate data to extraData
Move runningTimers, eventFilters and objectName data members to
ExtraData. Saves 12 bytes per QObject for 95% of use cases
(QObjectPrivate goes from 76B -> 64B).
Change-Id: I5648c89f65a7be3ea51bd703ee8a9dcff6222c3c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/corelib/kernel/qobject_p.h')
-rw-r--r-- | src/corelib/kernel/qobject_p.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index 8dd42d40b6..aa6b467fd6 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -59,6 +59,7 @@ #include "QtCore/qcoreevent.h" #include "QtCore/qlist.h" #include "QtCore/qvector.h" +#include "QtCore/qvariant.h" #include "QtCore/qreadwritelock.h" QT_BEGIN_NAMESPACE @@ -97,8 +98,19 @@ class Q_CORE_EXPORT QObjectPrivate : public QObjectData { Q_DECLARE_PUBLIC(QObject) - struct ExtraData; public: + struct ExtraData + { + ExtraData() {} + #ifndef QT_NO_USERDATA + QVector<QObjectUserData *> userData; + #endif + QList<QByteArray> propertyNames; + QList<QVariant> propertyValues; + QVector<int> runningTimers; + QList<QPointer<QObject> > eventFilters; + QString objectName; + }; typedef void (*StaticMetaCallFunction)(QObject *, QMetaObject::Call, int, void **); struct Connection @@ -179,7 +191,6 @@ public: inline bool isSignalConnected(uint signalIdx) const; public: - QString objectName; ExtraData *extraData; // extra data set by the user QThreadData *threadData; // id of the thread that owns the object @@ -189,8 +200,6 @@ public: Sender *currentSender; // object currently activating the object mutable quint32 connectedSignals[2]; - QVector<int> runningTimers; - QList<QPointer<QObject> > eventFilters; union { QObject *currentChildBeingDeleted; QAbstractDeclarativeData *declarativeData; //extra data used by the declarative module |