From 9eca40d0dac8f5ac3f7ccf4c998e44395084adfc Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 7 Nov 2011 09:39:08 +1000 Subject: [PATCH] VisualDataModel group change notification missing initialization. Found by valgrind. Ensure m_previousIndex is initialized. Change-Id: Ie3f56d0428d22a7ff1dc54dd53bfdaef21ad169f Reviewed-by: Andrew den Exter --- src/declarative/items/qquickvisualdatamodel.cpp | 9 ++++++++- src/declarative/items/qquickvisualdatamodel_p.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletions(-) diff --git a/src/declarative/items/qquickvisualdatamodel.cpp b/src/declarative/items/qquickvisualdatamodel.cpp index 1a24e16..b9d97e7 100644 --- a/src/declarative/items/qquickvisualdatamodel.cpp +++ b/src/declarative/items/qquickvisualdatamodel.cpp @@ -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 diff --git a/src/declarative/items/qquickvisualdatamodel_p.h b/src/declarative/items/qquickvisualdatamodel_p.h index 3312551..60b04ab 100644 --- a/src/declarative/items/qquickvisualdatamodel_p.h +++ b/src/declarative/items/qquickvisualdatamodel_p.h @@ -199,6 +199,8 @@ public: {} ~QQuickVisualDataModelAttached() { attachedProperties.remove(parent()); } + void setCacheItem(QQuickVisualDataModelCacheItem *item); + QQuickVisualDataModel *model() const; QStringList groups() const; -- 1.7.2.5