summaryrefslogtreecommitdiff
path: root/src/qml/jsruntime/qv4sequenceobject.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-01-08 14:51:33 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-20 21:13:51 +0100
commit375ebc57ac6401d09818e6aa4ea7d6324dbe93a6 (patch)
treec6cbe21dbe3b620e1b712a82eb11f4f4db491f57 /src/qml/jsruntime/qv4sequenceobject.cpp
parenta7431e41128bd3aa272223746a5bb57597a87de3 (diff)
downloadqtdeclarative-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.cpp21
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)
{