diff options
author | Lars Knoll <[email protected]> | 2014-01-27 14:58:52 +0100 |
---|---|---|
committer | The Qt Project <[email protected]> | 2014-02-07 10:44:00 +0100 |
commit | 39d7e330e64c2132828a040497a5b7326202b5b9 (patch) | |
tree | 7c5568b5ba0ab6fed316bb88d229e0496ad3c6fd /src/qml/jsruntime/qv4objectiterator.cpp | |
parent | 927a46b1af9728c770dabb82f0b2233600636d2a (diff) |
Make the Ref classes not template based
Move to a class hierarchy that mirrors the main classes. This will
allow moving functionality over into the Ref classes, as the current
Managed classes become mainly something that holds the data. This
is required to make objects movable by the GC.
Change-Id: I4ca88ab0e5d8c88c8dc56d51937990500a33e0d9
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4objectiterator.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4objectiterator.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/qml/jsruntime/qv4objectiterator.cpp b/src/qml/jsruntime/qv4objectiterator.cpp index 707bea0c45..e5f693c323 100644 --- a/src/qml/jsruntime/qv4objectiterator.cpp +++ b/src/qml/jsruntime/qv4objectiterator.cpp @@ -46,18 +46,18 @@ using namespace QV4; -ObjectIterator::ObjectIterator(ObjectRef scratch1, ObjectRef scratch2, const ObjectRef o, uint flags) - : object(scratch1) - , current(scratch2) +ObjectIterator::ObjectIterator(Value *scratch1, Value *scratch2, const ObjectRef o, uint flags) + : object(ObjectRef::fromValuePointer(scratch1)) + , current(ObjectRef::fromValuePointer(scratch2)) , arrayNode(0) , arrayIndex(0) , memberIndex(0) , flags(flags) { - object = o; - current = o; + object = o.getPointer(); + current = o.getPointer(); - if (object && object->asArgumentsObject()) { + if (!!object && object->asArgumentsObject()) { Scope scope(object->engine()); Scoped<ArgumentsObject> (scope, object->asReturnedValue())->fullyCreate(); } @@ -74,7 +74,7 @@ ObjectIterator::ObjectIterator(Scope &scope, const ObjectRef o, uint flags) object = o; current = o; - if (object && object->asArgumentsObject()) { + if (!!object && object->asArgumentsObject()) { Scope scope(object->engine()); Scoped<ArgumentsObject> (scope, object->asReturnedValue())->fullyCreate(); } @@ -103,7 +103,7 @@ void ObjectIterator::next(StringRef name, uint *index, Property *pd, PropertyAtt Object *o = object; bool shadowed = false; while (o != current) { - if ((name && o->hasOwnProperty(name)) || + if ((!!name && o->hasOwnProperty(name)) || (*index != UINT_MAX && o->hasOwnProperty(*index))) { shadowed = true; break; |