aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4lookup.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2014-11-17 19:48:15 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-12-10 14:04:20 +0100
commit7a0542d45e9f675f361477927bec1bbb0fa7a88d (patch)
tree1b92149cafdf8ced7f8bb1508436a8a192699eb4 /src/qml/jsruntime/qv4lookup.cpp
parent4f626f32d91ce3a8d8d3967137f1f170b1ce080f (diff)
Fix arrayData accesses in qv4lookup.cpp
Change-Id: I39a2e4f14afda2c0e909584682ef24a8b030025b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4lookup.cpp')
-rw-r--r--src/qml/jsruntime/qv4lookup.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp
index f153c92163..b93230606f 100644
--- a/src/qml/jsruntime/qv4lookup.cpp
+++ b/src/qml/jsruntime/qv4lookup.cpp
@@ -142,8 +142,8 @@ ReturnedValue Lookup::indexedGetterFallback(Lookup *l, const ValueRef object, co
}
if (idx < UINT_MAX) {
- if (o->arrayData() && !o->arrayData()->hasAttributes()) {
- ScopedValue v(scope, o->arrayData()->get(idx));
+ if (o->d()->arrayData && !o->d()->arrayData->attrs) {
+ ScopedValue v(scope, Scoped<ArrayData>(scope, o->arrayData())->get(idx));
if (!v->isEmpty())
return v->asReturnedValue();
}
@@ -166,9 +166,9 @@ ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, const ValueRef object, c
return indexedGetterGeneric(l, object, index);
Object *o = object->objectValue();
- if (o->arrayData() && o->arrayData()->type() == Heap::ArrayData::Simple) {
- SimpleArrayData *s = static_cast<SimpleArrayData *>(o->arrayData());
- if (idx < s->len())
+ if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
+ Heap::SimpleArrayData *s = static_cast<Heap::SimpleArrayData *>(o->d()->arrayData);
+ if (idx < s->len)
if (!s->data(idx).isEmpty())
return s->data(idx).asReturnedValue();
}
@@ -180,7 +180,7 @@ void Lookup::indexedSetterGeneric(Lookup *l, const ValueRef object, const ValueR
{
if (object->isObject()) {
Object *o = object->objectValue();
- if (o->arrayData() && o->arrayData()->type() == Heap::ArrayData::Simple && index->asArrayIndex() < UINT_MAX) {
+ if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple && index->asArrayIndex() < UINT_MAX) {
l->indexedSetter = indexedSetterObjectInt;
indexedSetterObjectInt(l, object, index, v);
return;
@@ -198,9 +198,9 @@ void Lookup::indexedSetterFallback(Lookup *l, const ValueRef object, const Value
uint idx = index->asArrayIndex();
if (idx < UINT_MAX) {
- if (o->arrayData() && o->arrayData()->type() == Heap::ArrayData::Simple) {
- SimpleArrayData *s = static_cast<SimpleArrayData *>(o->arrayData());
- if (idx < s->len() && !s->data(idx).isEmpty()) {
+ if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
+ Heap::SimpleArrayData *s = static_cast<Heap::SimpleArrayData *>(o->d()->arrayData);
+ if (idx < s->len) {
s->data(idx) = value;
return;
}
@@ -222,9 +222,9 @@ void Lookup::indexedSetterObjectInt(Lookup *l, const ValueRef object, const Valu
}
Object *o = object->objectValue();
- if (o->arrayData() && o->arrayData()->type() == Heap::ArrayData::Simple) {
- SimpleArrayData *s = static_cast<SimpleArrayData *>(o->arrayData());
- if (idx < s->len() && !s->data(idx).isEmpty()) {
+ if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
+ Heap::SimpleArrayData *s = static_cast<Heap::SimpleArrayData *>(o->d()->arrayData);
+ if (idx < s->len) {
s->data(idx) = v;
return;
}