diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-04-17 13:44:40 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-18 13:54:45 +0200 |
commit | 2fb17f3feefcca8862f6f908fe81957f34096c00 (patch) | |
tree | f85ccd98e2f578b41b609c542b40e22517593147 /src/quick | |
parent | 273fb1a2e8084a611ca9047c5d5a5ed26a521945 (diff) |
Fix crash in repeater when model gets deleted
Task-number: QTBUG-200461
Change-Id: Ia8e48668960ac005cf773bf6f53da40f1c753b9b
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickrepeater.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquickrepeater_p_p.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp index 35e37d1246..bf6d3c495b 100644 --- a/src/quick/items/qquickrepeater.cpp +++ b/src/quick/items/qquickrepeater.cpp @@ -217,7 +217,7 @@ void QQuickRepeater::setModel(const QVariant &model) d->model = new QQmlDelegateModel(qmlContext(this)); d->ownModel = true; if (isComponentComplete()) - static_cast<QQmlDelegateModel *>(d->model)->componentComplete(); + static_cast<QQmlDelegateModel *>(d->model.data())->componentComplete(); } if (QQmlDelegateModel *dataModel = qobject_cast<QQmlDelegateModel*>(d->model)) dataModel->setModel(model); @@ -329,7 +329,7 @@ void QQuickRepeater::componentComplete() { Q_D(QQuickRepeater); if (d->model && d->ownModel) - static_cast<QQmlDelegateModel *>(d->model)->componentComplete(); + static_cast<QQmlDelegateModel *>(d->model.data())->componentComplete(); QQuickItem::componentComplete(); regenerate(); if (d->model && d->model->count()) diff --git a/src/quick/items/qquickrepeater_p_p.h b/src/quick/items/qquickrepeater_p_p.h index f220eb4fcb..a642f6479a 100644 --- a/src/quick/items/qquickrepeater_p_p.h +++ b/src/quick/items/qquickrepeater_p_p.h @@ -73,7 +73,7 @@ public: private: void createItems(); - QQmlInstanceModel *model; + QPointer<QQmlInstanceModel> model; QVariant dataSource; QQmlGuard<QObject> dataSourceAsObject; bool ownModel : 1; |