aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4isel_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qv4isel_p.cpp')
-rw-r--r--src/qml/compiler/qv4isel_p.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4isel_p.cpp b/src/qml/compiler/qv4isel_p.cpp
index 3f9e666c98..45b1e9f3b0 100644
--- a/src/qml/compiler/qv4isel_p.cpp
+++ b/src/qml/compiler/qv4isel_p.cpp
@@ -151,7 +151,12 @@ void IRDecoder::visitMove(V4IR::Move *s)
return;
}
} else if (m->type == V4IR::Member::MemberOfQObject) {
- getQObjectProperty(m->base, m->property->coreIndex, t);
+ bool captureRequired = true;
+ if (_function) {
+ captureRequired = !_function->contextObjectDependencies.contains(m->property)
+ && !_function->scopeObjectDependencies.contains(m->property);
+ }
+ getQObjectProperty(m->base, m->property->coreIndex, captureRequired, t);
return;
} else if (m->base->asTemp() || m->base->asConst()) {
getProperty(m->base, *m->name, t);