summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobject_p.h
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-05-17 17:39:46 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-21 03:10:45 +0200
commit11fa02c5cda08ea8eb83d61113c7fb1571d8e7b2 (patch)
treec2b40fac9f6e1b53dbaf0632f037477862d61e8e /src/corelib/kernel/qobject_p.h
parent0b8021f5cb64d751c694b976d09b0f89017b14e4 (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.h17
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