From 11fa02c5cda08ea8eb83d61113c7fb1571d8e7b2 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 17 May 2012 17:39:46 +1000 Subject: 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 Reviewed-by: Roberto Raggi Reviewed-by: Lars Knoll --- src/corelib/kernel/qobject_p.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/corelib/kernel/qobject_p.h') 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 userData; + #endif + QList propertyNames; + QList propertyValues; + QVector runningTimers; + QList > 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 runningTimers; - QList > eventFilters; union { QObject *currentChildBeingDeleted; QAbstractDeclarativeData *declarativeData; //extra data used by the declarative module -- cgit v1.2.3