aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlobjectcreator.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-02-24 16:28:25 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-02 14:48:23 +0100
commit5dfd26f089d6386033e3c9908c4f653a037830f7 (patch)
tree2240d0cc1b3b68166003cfce83fc149afd2026d7 /src/qml/qml/qqmlobjectcreator.cpp
parentc021fd9aa8ccf30f63b8a21e3ae6cdf8a45d0b1f (diff)
[new compiler] Fix lazy binding evaluation
Similar to commit 5dc7649f5ad7dca6e13707e827d001c3f118a6ef in the vme, we need to set the pending binding bit for non-value-type property bindings in order for the optimization to work and the tests to pass. Change-Id: I89c0a3ea78c331b9c82eb8595bd4ab252b271ab5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlobjectcreator.cpp')
-rw-r--r--src/qml/qml/qqmlobjectcreator.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp
index 32f3fe73fa..d1a84b717d 100644
--- a/src/qml/qml/qqmlobjectcreator.cpp
+++ b/src/qml/qml/qqmlobjectcreator.cpp
@@ -776,6 +776,12 @@ bool QQmlObjectCreator::setPropertyBinding(QQmlPropertyData *property, const QV4
if (old) { old->destroy(); }
} else {
qmlBinding->addToObject();
+
+ if (!_valueTypeProperty) {
+ QQmlData *targetDeclarativeData = QQmlData::get(_bindingTarget);
+ Q_ASSERT(targetDeclarativeData);
+ targetDeclarativeData->setPendingBindingBit(_bindingTarget, property->coreIndex);
+ }
}
sharedState->allCreatedBindings.push(qmlBinding);