diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-06-22 07:46:32 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-08-10 01:22:05 +0000 |
commit | f21e8c641af6b2d10f0d7e7e0fc6a755dab3673c (patch) | |
tree | b3b430f88fc83f57d0413a7723ee35aa715f795c /src/qml/compiler/qv4isel_p.cpp | |
parent | b2889568170b20ca8f870a7f4a1a1c3ac9f698c5 (diff) |
Access context properties through the qml context
And get rid of another temp in the IR.
Change-Id: I039393e020e5141f1986aee276246c30fd8057f3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/qml/compiler/qv4isel_p.cpp')
-rw-r--r-- | src/qml/compiler/qv4isel_p.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/qml/compiler/qv4isel_p.cpp b/src/qml/compiler/qv4isel_p.cpp index a4a3bc352e..4ed321b006 100644 --- a/src/qml/compiler/qv4isel_p.cpp +++ b/src/qml/compiler/qv4isel_p.cpp @@ -95,8 +95,6 @@ void IRDecoder::visitMove(IR::Move *s) loadQmlContext(s->target); else if (n->builtin == IR::Name::builtin_qml_id_array) loadQmlIdArray(s->target); - else if (n->builtin == IR::Name::builtin_qml_context_object) - loadQmlContextObject(s->target); else if (n->builtin == IR::Name::builtin_qml_imported_scripts_object) loadQmlImportedScripts(s->target); else if (n->qmlSingleton) @@ -153,7 +151,7 @@ void IRDecoder::visitMove(IR::Move *s) captureRequired = false; } } - if (m->kind == IR::Member::MemberOfQmlScopeObject) { + if (m->kind == IR::Member::MemberOfQmlScopeObject || m->kind == IR::Member::MemberOfQmlContextObject) { getQmlContextProperty(m->base, (IR::Member::MemberKind)m->kind, m->property->coreIndex, s->target); return; } @@ -179,7 +177,7 @@ void IRDecoder::visitMove(IR::Move *s) return; } else if (Member *member = c->base->asMember()) { #ifndef V4_BOOTSTRAP - if (member->kind == IR::Member::MemberOfQmlScopeObject) { + if (member->kind == IR::Member::MemberOfQmlScopeObject || member->kind == IR::Member::MemberOfQmlContextObject) { callQmlContextProperty(member->base, (IR::Member::MemberKind)member->kind, member->property->coreIndex, c->args, s->target); return; } @@ -207,7 +205,7 @@ void IRDecoder::visitMove(IR::Move *s) #ifdef V4_BOOTSTRAP Q_UNIMPLEMENTED(); #else - if (m->kind == IR::Member::MemberOfQmlScopeObject) { + if (m->kind == IR::Member::MemberOfQmlScopeObject || m->kind == IR::Member::MemberOfQmlContextObject) { setQmlContextProperty(s->source, m->base, (IR::Member::MemberKind)m->kind, m->property->coreIndex); return; } @@ -253,7 +251,7 @@ void IRDecoder::visitExp(IR::Exp *s) } else if (Member *member = c->base->asMember()) { Q_ASSERT(member->base->asTemp() || member->base->asArgLocal()); #ifndef V4_BOOTSTRAP - if (member->kind == IR::Member::MemberOfQmlScopeObject) { + if (member->kind == IR::Member::MemberOfQmlScopeObject || member->kind == IR::Member::MemberOfQmlContextObject) { callQmlContextProperty(member->base, (IR::Member::MemberKind)member->kind, member->property->coreIndex, c->args, 0); return; } |