diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-01-08 14:51:33 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-20 21:13:51 +0100 |
commit | 375ebc57ac6401d09818e6aa4ea7d6324dbe93a6 (patch) | |
tree | c6cbe21dbe3b620e1b712a82eb11f4f4db491f57 /src/qml/jsruntime/qv4sequenceobject.cpp | |
parent | a7431e41128bd3aa272223746a5bb57597a87de3 (diff) | |
download | qtdeclarative-375ebc57ac6401d09818e6aa4ea7d6324dbe93a6.tar.gz |
Don't return a Property pointer in Object::advanceIterator
Change-Id: Iac4cb2a2252b18e40455910e51e3e374df7c1e80
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4sequenceobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4sequenceobject.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index feb3806ba5..52a6244890 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -286,26 +286,27 @@ public: return (signedIdx < m_container.count()) ? QV4::Attr_Data : QV4::Attr_Invalid; } - Property *containerAdvanceIterator(ObjectIterator *it, StringRef name, uint *index, PropertyAttributes *attrs) + void containerAdvanceIterator(ObjectIterator *it, StringRef name, uint *index, Property *p, PropertyAttributes *attrs) { name = (String *)0; *index = UINT_MAX; if (m_isReference) { - if (!m_object) - return QV4::Object::advanceIterator(this, it, name, index, attrs); + if (!m_object) { + QV4::Object::advanceIterator(this, it, name, index, p, attrs); + return; + } loadReference(); } if (it->arrayIndex < static_cast<uint>(m_container.count())) { - if (attrs) - *attrs = QV4::Attr_Data; *index = it->arrayIndex; ++it->arrayIndex; - it->tmpDynamicProperty.value = convertElementToValue(engine(), m_container.at(*index)); - return &it->tmpDynamicProperty; + *attrs = QV4::Attr_Data; + p->value = convertElementToValue(engine(), m_container.at(*index)); + return; } - return QV4::Object::advanceIterator(this, it, name, index, attrs); + QV4::Object::advanceIterator(this, it, name, index, p, attrs); } bool containerDeleteIndexedProperty(uint index) @@ -509,8 +510,8 @@ private: { return static_cast<QQmlSequence<Container> *>(that)->containerDeleteIndexedProperty(index); } static bool isEqualTo(Managed *that, Managed *other) { return static_cast<QQmlSequence<Container> *>(that)->containerIsEqualTo(other); } - static Property *advanceIterator(Managed *that, ObjectIterator *it, StringRef name, uint *index, PropertyAttributes *attrs) - { return static_cast<QQmlSequence<Container> *>(that)->containerAdvanceIterator(it, name, index, attrs); } + static void advanceIterator(Managed *that, ObjectIterator *it, StringRef name, uint *index, Property *p, PropertyAttributes *attrs) + { return static_cast<QQmlSequence<Container> *>(that)->containerAdvanceIterator(it, name, index, p, attrs); } static void destroy(Managed *that) { |