diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-12-18 01:04:50 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-12-18 01:17:20 (GMT) |
commit | 7f0b65bf04f96edf0d39547f499dea1746d69ba3 (patch) | |
tree | 7634a5cefce7756f37a825ea067e8a71224ff9fc /src/declarative/qml/qmlcompiler.cpp | |
parent | fd222fa269db8797ad35c23d7298df7c8a81751e (diff) | |
download | Qt-7f0b65bf04f96edf0d39547f499dea1746d69ba3.zip Qt-7f0b65bf04f96edf0d39547f499dea1746d69ba3.tar.gz Qt-7f0b65bf04f96edf0d39547f499dea1746d69ba3.tar.bz2 |
Fix deferred property bugs
Previously deferred properties would fail if any of the sub objects
used bindings or QmlParserStatus. Whoops.
Diffstat (limited to 'src/declarative/qml/qmlcompiler.cpp')
-rw-r--r-- | src/declarative/qml/qmlcompiler.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index 9147c4a..3f0dd84 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -902,6 +902,14 @@ void QmlCompiler::genObjectBody(QmlParser::Object *obj) int deferIdx = output->bytecode.count(); output->bytecode << defer; + QmlInstruction init; + init.type = QmlInstruction::Init; + init.init.bindingsSize = compileState.bindings.count(); // XXX - bigger than necessary + init.init.parserStatusSize = compileState.parserStatusCount; // XXX - bigger than necessary + init.init.contextCache = -1; + init.init.compiledBinding = -1; + output->bytecode << init; + foreach(Property *prop, obj->valueProperties) { if (!prop->isDeferred) continue; |