diff options
Diffstat (limited to 'src/declarative/qml/qmlcompiler_p.h')
-rw-r--r-- | src/declarative/qml/qmlcompiler_p.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/declarative/qml/qmlcompiler_p.h b/src/declarative/qml/qmlcompiler_p.h index 6e9bafb..b1963da 100644 --- a/src/declarative/qml/qmlcompiler_p.h +++ b/src/declarative/qml/qmlcompiler_p.h @@ -158,13 +158,31 @@ private: QmlParser::Value *value); bool compileDynamicMeta(QmlParser::Object *obj); - bool compileBinding(const QString &, QmlParser::Property *prop, + bool compileBinding(const QmlParser::Variant &, QmlParser::Property *prop, int ctxt, const QMetaObject *, qint64); - int optimizeExpressions(int start, int end, int patch = -1); + int finalizeComponent(int patch); - QSet<QString> ids; - QHash<int, int> savedTypes; + struct IdReference { + QString id; + QmlParser::Object *object; + int instructionIdx; + }; + + struct BindingReference { + QmlParser::Variant expression; + QmlParser::Property *property; + int instructionIdx; + }; + + struct ComponentCompileState + { + ComponentCompileState() : parserStatusCount(0) {} + QHash<QString, IdReference> ids; + int parserStatusCount; + QList<BindingReference> bindings; + }; + ComponentCompileState compileState; QList<QmlError> exceptions; QmlCompiledData *output; |