summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlcompiler_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qmlcompiler_p.h')
-rw-r--r--src/declarative/qml/qmlcompiler_p.h26
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;