diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-28 03:25:31 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-28 03:25:31 (GMT) |
commit | 1090d5d1fad890d9f43e87e19277e1f624921d6d (patch) | |
tree | 7420c5469b0cc509a67fccab86e434a71faf97ec /src/declarative/qml/qmlcompiler_p.h | |
parent | 4587282af7bfb9f6b1a8329651073bb4127c62b8 (diff) | |
download | Qt-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.h | 14 |
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; |