diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-02-24 16:28:25 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-02 14:48:23 +0100 |
commit | 5dfd26f089d6386033e3c9908c4f653a037830f7 (patch) | |
tree | 2240d0cc1b3b68166003cfce83fc149afd2026d7 /src/qml/qml/qqmlobjectcreator.cpp | |
parent | c021fd9aa8ccf30f63b8a21e3ae6cdf8a45d0b1f (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.cpp | 6 |
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); |