aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qqmlirbuilder.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-07-04 14:17:00 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2017-07-04 12:20:09 +0000
commit372298e8f38846769276c8c4d70e6732c4878249 (patch)
tree5ad16a40e695126e28629a8d1c80dd556f375523 /src/qml/compiler/qqmlirbuilder.cpp
parentf3561037c9892c9c467f618ce3000567a4924363 (diff)
Bring back captureRequired on scope/contest property loading
This is needed to properly register permanent/temporary dependencies This patch also removes related interpreter instructions that should have changed, but were not used. Change-Id: Ie53c4611766680734c02e328b7f2c752cae150e0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qqmlirbuilder.cpp')
-rw-r--r--src/qml/compiler/qqmlirbuilder.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp
index f34a797508..174602dfcd 100644
--- a/src/qml/compiler/qqmlirbuilder.cpp
+++ b/src/qml/compiler/qqmlirbuilder.cpp
@@ -2014,7 +2014,9 @@ QV4::Compiler::Codegen::Reference JSCodeGen::fallbackNameLookup(const QString &n
if (!data)
return Reference::fromName(this, name);
Reference base = Reference::fromTemp(this, _qmlContextTemp);
- return Reference::fromQmlScopeObject(base, data->coreIndex(), data->notifyIndex());
+ bool captureRequired = !data->isConstant() && !data->isQmlBinding();
+ return Reference::fromQmlScopeObject(base, data->coreIndex(), data->notifyIndex(),
+ captureRequired);
}
if (_contextObject) {
@@ -2022,7 +2024,9 @@ QV4::Compiler::Codegen::Reference JSCodeGen::fallbackNameLookup(const QString &n
if (!data)
return Reference::fromName(this, name);
Reference base = Reference::fromTemp(this, _qmlContextTemp);
- return Reference::fromQmlContextObject(base, data->coreIndex(), data->notifyIndex());
+ bool captureRequired = !data->isConstant() && !data->isQmlBinding();
+ return Reference::fromQmlContextObject(base, data->coreIndex(), data->notifyIndex(),
+ captureRequired);
}
#else
Q_UNUSED(name)