aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmldata_p.h
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2012-05-03 09:55:48 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-03 03:56:02 +0200
commitccd69247eaa6289bc31115f863ba4737b14fe34e (patch)
treec9a4d7c2b6a2adab762319e3e1c71bfc06e5690b /src/qml/qml/qqmldata_p.h
parent9b789fd4e516577fa5dbffdf5dbfb4d7f99e985b (diff)
Add a static flag to avoid unnecessary QQmlData::init() calls
Change-Id: I0b38753bfaf2d1e22ab67977001b946a686b0f56 Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
Diffstat (limited to 'src/qml/qml/qqmldata_p.h')
-rw-r--r--src/qml/qml/qqmldata_p.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/qml/qml/qqmldata_p.h b/src/qml/qml/qqmldata_p.h
index 0686830dcd..e97bbb15dc 100644
--- a/src/qml/qml/qqmldata_p.h
+++ b/src/qml/qml/qqmldata_p.h
@@ -83,14 +83,19 @@ public:
bindings(0), signalHandlers(0), nextContextObject(0), prevContextObject(0), bindingBitsSize(0), bindingBits(0),
lineNumber(0), columnNumber(0), deferredComponent(0), deferredIdx(0), v8objectid(0),
propertyCache(0), guards(0), extendedData(0) {
+ init();
}
static inline void init() {
- QAbstractDeclarativeData::destroyed = destroyed;
- QAbstractDeclarativeData::parentChanged = parentChanged;
- QAbstractDeclarativeData::objectNameChanged = objectNameChanged;
- QAbstractDeclarativeData::signalEmitted = signalEmitted;
- QAbstractDeclarativeData::receivers = receivers;
+ static bool initialized = false;
+ if (!initialized) {
+ initialized = true;
+ QAbstractDeclarativeData::destroyed = destroyed;
+ QAbstractDeclarativeData::parentChanged = parentChanged;
+ QAbstractDeclarativeData::objectNameChanged = objectNameChanged;
+ QAbstractDeclarativeData::signalEmitted = signalEmitted;
+ QAbstractDeclarativeData::receivers = receivers;
+ }
}
static void destroyed(QAbstractDeclarativeData *, QObject *);