summaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-06-22 11:54:01 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-22 07:45:54 +0200
commite2b7867474608842deb380ca5fcc686e9e7840da (patch)
treecfa4a9113fe08e6e30556d31b0fff9070bb4e4cd /src/declarative
parent587b21cf18bcb689aef58411837ed616b02c952b (diff)
QDeclarativeVisualDataModel crashes getting QAbstractItemModel roles.
Don't iterate over a temporary. Task-number: QTBUG-26209 Change-Id: Iab99d0756c5c30e4f5bb9b674a20eaf76ebce1e6 Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
index ec840f4c..2c4e8641 100644
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
@@ -288,8 +288,9 @@ public:
for (int ii = 0; ii < m_roles.count(); ++ii)
m_roleNames.insert(m_listModelInterface->toString(m_roles.at(ii)).toUtf8(), m_roles.at(ii));
} else if (m_abstractItemModel) {
- for (QHash<int,QByteArray>::const_iterator it = m_abstractItemModel->roleNames().constBegin();
- it != m_abstractItemModel->roleNames().constEnd(); ++it) {
+ QHash<int,QByteArray> roleNames = m_abstractItemModel->roleNames();
+ for (QHash<int,QByteArray>::const_iterator it = roleNames.constBegin();
+ it != roleNames.constEnd(); ++it) {
m_roles.append(it.key());
m_roleNames.insert(*it, it.key());
}