summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlcompiler_p.h
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-05-28 03:25:31 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-05-28 03:25:31 (GMT)
commit1090d5d1fad890d9f43e87e19277e1f624921d6d (patch)
tree7420c5469b0cc509a67fccab86e434a71faf97ec /src/declarative/qml/qmlcompiler_p.h
parent4587282af7bfb9f6b1a8329651073bb4127c62b8 (diff)
downloadQt-1090d5d1fad890d9f43e87e19277e1f624921d6d.zip
Qt-1090d5d1fad890d9f43e87e19277e1f624921d6d.tar.gz
Qt-1090d5d1fad890d9f43e87e19277e1f624921d6d.tar.bz2
Delay the compilation of bindings until the end
This way we have a better understanding of the complete context in which the binding will be executed.
Diffstat (limited to 'src/declarative/qml/qmlcompiler_p.h')
-rw-r--r--src/declarative/qml/qmlcompiler_p.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/declarative/qml/qmlcompiler_p.h b/src/declarative/qml/qmlcompiler_p.h
index b1963da..eb24b91 100644
--- a/src/declarative/qml/qmlcompiler_p.h
+++ b/src/declarative/qml/qmlcompiler_p.h
@@ -158,10 +158,12 @@ private:
QmlParser::Value *value);
bool compileDynamicMeta(QmlParser::Object *obj);
- bool compileBinding(const QmlParser::Variant &, QmlParser::Property *prop,
- int ctxt, const QMetaObject *, qint64);
+ bool compileBinding(QmlParser::Value *, QmlParser::Property *prop,
+ int ctxt);
- int finalizeComponent(int patch);
+ void finalizeComponent(int patch);
+ class BindingReference;
+ void finalizeBinding(const BindingReference &);
struct IdReference {
QString id;
@@ -172,14 +174,18 @@ private:
struct BindingReference {
QmlParser::Variant expression;
QmlParser::Property *property;
+ QmlParser::Value *value;
int instructionIdx;
+ int bindingContext;
};
struct ComponentCompileState
{
- ComponentCompileState() : parserStatusCount(0) {}
+ ComponentCompileState() : parserStatusCount(0), savedObjects(0), pushedProperties(0) {}
QHash<QString, IdReference> ids;
int parserStatusCount;
+ int savedObjects;
+ int pushedProperties;
QList<BindingReference> bindings;
};
ComponentCompileState compileState;