aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4lookup.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2016-11-25 10:27:02 +0100
committerLars Knoll <lars.knoll@qt.io>2016-11-29 20:00:29 +0000
commit46941afcc10209905a92e6bb8b3eba7c08bf6750 (patch)
tree85f11182e9656668aaeda6e5adcce6b1418fb672 /src/qml/jsruntime/qv4lookup.cpp
parent5d35573a62686aa3b0c45fc032b79670d88ebba9 (diff)
Cleanup Value::isObject/objectValue usages
Try to avoid calling both as objectValue() already checks isObject(). Change-Id: I1d770d4d9dabed4ea4cc3e322b8fdc5a64f5bd2b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4lookup.cpp')
-rw-r--r--src/qml/jsruntime/qv4lookup.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp
index 5e9d4cf57c..0b0b2685b3 100644
--- a/src/qml/jsruntime/qv4lookup.cpp
+++ b/src/qml/jsruntime/qv4lookup.cpp
@@ -174,15 +174,15 @@ ReturnedValue Lookup::indexedGetterFallback(Lookup *l, const Value &object, cons
ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, const Value &object, const Value &index)
{
uint idx = index.asArrayIndex();
- if (idx == UINT_MAX || !object.isObject())
- return indexedGetterFallback(l, object, index);
-
- Object *o = object.objectValue();
- if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
- Heap::SimpleArrayData *s = o->d()->arrayData.cast<Heap::SimpleArrayData>();
- if (idx < s->len)
- if (!s->data(idx).isEmpty())
- return s->data(idx).asReturnedValue();
+ if (idx != UINT_MAX) {
+ if (Object *o = object.objectValue()) {
+ if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
+ Heap::SimpleArrayData *s = o->d()->arrayData.cast<Heap::SimpleArrayData>();
+ if (idx < s->len)
+ if (!s->data(idx).isEmpty())
+ return s->data(idx).asReturnedValue();
+ }
+ }
}
return indexedGetterFallback(l, object, index);
@@ -190,8 +190,7 @@ ReturnedValue Lookup::indexedGetterObjectInt(Lookup *l, const Value &object, con
void Lookup::indexedSetterGeneric(Lookup *l, const Value &object, const Value &index, const Value &v)
{
- if (object.isObject()) {
- Object *o = object.objectValue();
+ if (Object *o = object.objectValue()) {
if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple && index.asArrayIndex() < UINT_MAX) {
l->indexedSetter = indexedSetterObjectInt;
indexedSetterObjectInt(l, object, index, v);
@@ -228,17 +227,15 @@ void Lookup::indexedSetterFallback(Lookup *l, const Value &object, const Value &
void Lookup::indexedSetterObjectInt(Lookup *l, const Value &object, const Value &index, const Value &v)
{
uint idx = index.asArrayIndex();
- if (idx == UINT_MAX || !object.isObject()) {
- indexedSetterGeneric(l, object, index, v);
- return;
- }
-
- Object *o = object.objectValue();
- if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
- Heap::SimpleArrayData *s = o->d()->arrayData.cast<Heap::SimpleArrayData>();
- if (idx < s->len) {
- s->data(idx) = v;
- return;
+ if (idx != UINT_MAX) {
+ if (Object *o = object.objectValue()) {
+ if (o->d()->arrayData && o->d()->arrayData->type == Heap::ArrayData::Simple) {
+ Heap::SimpleArrayData *s = o->d()->arrayData.cast<Heap::SimpleArrayData>();
+ if (idx < s->len) {
+ s->data(idx) = v;
+ return;
+ }
+ }
}
}
indexedSetterFallback(l, object, index, v);