summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativepropertycache_p.h
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2010-10-14 08:22:57 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2010-10-14 08:23:52 (GMT)
commitc407d79f79c67f2f2bb84efc93061fd57fe4cf54 (patch)
treed56dcae60c345acaf5d4e3a0251dde99785b3ec6 /src/declarative/qml/qdeclarativepropertycache_p.h
parent1048ac9f491bf2e79c469d0451e437a1a485bef5 (diff)
downloadQt-c407d79f79c67f2f2bb84efc93061fd57fe4cf54.zip
Qt-c407d79f79c67f2f2bb84efc93061fd57fe4cf54.tar.gz
Qt-c407d79f79c67f2f2bb84efc93061fd57fe4cf54.tar.bz2
Correctly splice properties from derived metaobjects together
Task-number: QTBUG-14449
Diffstat (limited to 'src/declarative/qml/qdeclarativepropertycache_p.h')
-rw-r--r--src/declarative/qml/qdeclarativepropertycache_p.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativepropertycache_p.h b/src/declarative/qml/qdeclarativepropertycache_p.h
index 79b126d..922010d 100644
--- a/src/declarative/qml/qdeclarativepropertycache_p.h
+++ b/src/declarative/qml/qdeclarativepropertycache_p.h
@@ -96,7 +96,7 @@ public:
IsVMEFunction = 0x00000400,
HasArguments = 0x00000800,
IsSignal = 0x00001000,
- IsVMESignal = 0x00002000,
+ IsVMESignal = 0x00002000
};
Q_DECLARE_FLAGS(Flags, Flag)
@@ -105,7 +105,10 @@ public:
Flags flags;
int propType;
int coreIndex;
- int notifyIndex;
+ union {
+ int notifyIndex; // When !IsFunction
+ int relatedIndex; // When IsFunction
+ };
static Flags flagsForProperty(const QMetaProperty &, QDeclarativeEngine *engine = 0);
void load(const QMetaProperty &, QDeclarativeEngine *engine = 0);
@@ -152,6 +155,8 @@ private:
typedef QHash<QString, RData *> StringCache;
typedef QHash<QScriptDeclarativeClass::Identifier, RData *> IdentifierCache;
+ void updateRecur(QDeclarativeEngine *, const QMetaObject *);
+
QDeclarativeEngine *engine;
IndexCache indexCache;
IndexCache methodIndexCache;