aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4objectiterator.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/qv4objectiterator.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/qv4objectiterator.cpp')
-rw-r--r--src/qml/jsruntime/qv4objectiterator.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/qml/jsruntime/qv4objectiterator.cpp b/src/qml/jsruntime/qv4objectiterator.cpp
index 7943a13ac0..59115dfe21 100644
--- a/src/qml/jsruntime/qv4objectiterator.cpp
+++ b/src/qml/jsruntime/qv4objectiterator.cpp
@@ -70,15 +70,16 @@ void ObjectIterator::next(Value *name, uint *index, Property *pd, PropertyAttrib
ScopedString n(scope);
while (1) {
- if (!current->as<Object>())
+ Object *co = current->objectValue();
+ if (!co)
break;
while (1) {
- current->as<Object>()->advanceIterator(this, name, index, pd, attrs);
+ co->advanceIterator(this, name, index, pd, attrs);
if (attrs->isEmpty())
break;
// check the property is not already defined earlier in the proto chain
- if (current->heapObject() != object->heapObject()) {
+ if (co->heapObject() != object->heapObject()) {
o = object->as<Object>();
n = *name;
bool shadowed = false;
@@ -97,7 +98,7 @@ void ObjectIterator::next(Value *name, uint *index, Property *pd, PropertyAttrib
}
if (flags & WithProtoChain)
- current->setM(current->objectValue()->prototype());
+ current->setM(co->prototype());
else
current->setM(0);
@@ -109,7 +110,8 @@ void ObjectIterator::next(Value *name, uint *index, Property *pd, PropertyAttrib
ReturnedValue ObjectIterator::nextPropertyName(Value *value)
{
- if (!object->as<Object>())
+ Object *o = object->objectValue();
+ if (!o)
return Encode::null();
PropertyAttributes attrs;
@@ -121,7 +123,7 @@ ReturnedValue ObjectIterator::nextPropertyName(Value *value)
if (attrs.isEmpty())
return Encode::null();
- *value = object->objectValue()->getValue(p->value, attrs);
+ *value = o->getValue(p->value, attrs);
if (!!name)
return name->asReturnedValue();
@@ -131,7 +133,8 @@ ReturnedValue ObjectIterator::nextPropertyName(Value *value)
ReturnedValue ObjectIterator::nextPropertyNameAsString(Value *value)
{
- if (!object->as<Object>())
+ Object *o = object->objectValue();
+ if (!o)
return Encode::null();
PropertyAttributes attrs;
@@ -143,7 +146,7 @@ ReturnedValue ObjectIterator::nextPropertyNameAsString(Value *value)
if (attrs.isEmpty())
return Encode::null();
- *value = object->objectValue()->getValue(p->value, attrs);
+ *value = o->getValue(p->value, attrs);
if (!!name)
return name->asReturnedValue();