VisualDataModel group change notification missing initialization.
authorMartin Jones <martin.jones@nokia.com>
Sun, 6 Nov 2011 23:39:08 +0000 (09:39 +1000)
committerQt by Nokia <qt-info@nokia.com>
Tue, 8 Nov 2011 22:15:33 +0000 (23:15 +0100)
Found by valgrind.  Ensure m_previousIndex is initialized.

Change-Id: Ie3f56d0428d22a7ff1dc54dd53bfdaef21ad169f
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
src/declarative/items/qquickvisualdatamodel.cpp
src/declarative/items/qquickvisualdatamodel_p.h

index 1a24e16..b9d97e7 100644 (file)
@@ -998,7 +998,7 @@ QObject *QQuickVisualDataModelPrivate::object(Compositor::Group group, int index
             }
 
             cacheItem->attached = QQuickVisualDataModelAttached::properties(cacheItem->object);
-            cacheItem->attached->m_cacheItem = cacheItem;
+            cacheItem->attached->setCacheItem(cacheItem);
             new QQuickVisualDataModelAttachedMetaObject(cacheItem->attached, m_cacheMetaType);
             cacheItem->attached->emitChanges();
 
@@ -1728,6 +1728,13 @@ int QQuickVisualDataModelAttachedMetaObject::metaCall(QMetaObject::Call call, in
     return attached->qt_metacall(call, _id, arguments);
 }
 
+void QQuickVisualDataModelAttached::setCacheItem(QQuickVisualDataModelCacheItem *item)
+{
+    m_cacheItem = item;
+    for (int i = 1; i < m_cacheItem->metaType->groupCount; ++i)
+        m_previousIndex[i] = m_cacheItem->index[i];
+}
+
 /*!
     \qmlattachedproperty int QtQuick2::VisualDataModel::model
 
index 3312551..60b04ab 100644 (file)
@@ -199,6 +199,8 @@ public:
     {}
     ~QQuickVisualDataModelAttached() { attachedProperties.remove(parent()); }
 
+    void setCacheItem(QQuickVisualDataModelCacheItem *item);
+
     QQuickVisualDataModel *model() const;
 
     QStringList groups() const;