diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-11-20 14:47:12 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-11-26 17:25:27 +0000 |
commit | 573b3cdaaf432b9eab2f2bbe35b6b4684d4a7c3d (patch) | |
tree | 9608c82729fb68527cac4e3d0d077fc391633a5f /src/quick/items | |
parent | d1de10fa2dce63cf45f7b013d00d1953415d6069 (diff) |
ListView: fix random crashes when accessing deleted objects
These crashes occur randomly with tst_combobox from qtquickcontrols2,
and with the test case attached to the linked bug report.
Change-Id: If7d91045f86ec33e7fe398ed02f3edf80700651a
Task-number: QTBUG-48277
Reviewed-by: Nikita Krupenko <krnekit@gmail.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquicklistview_p.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 0211e9f285..132e2b24a1 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -249,7 +249,7 @@ public: } inline QQuickItem *section() const { - return attached ? static_cast<QQuickListViewAttached*>(attached)->m_sectionItem : 0; + return item && attached ? static_cast<QQuickListViewAttached*>(attached)->m_sectionItem : 0; } void setSection(QQuickItem *s) { static_cast<QQuickListViewAttached*>(attached)->m_sectionItem = s; @@ -1302,7 +1302,7 @@ bool QQuickListViewPrivate::showHeaderForIndex(int index) const bool QQuickListViewPrivate::showFooterForIndex(int index) const { - return index == model->count()-1; + return model && index == model->count()-1; } void QQuickListViewPrivate::updateFooter() diff --git a/src/quick/items/qquicklistview_p.h b/src/quick/items/qquicklistview_p.h index 5f8be2ab02..74bdad2d69 100644 --- a/src/quick/items/qquicklistview_p.h +++ b/src/quick/items/qquicklistview_p.h @@ -196,7 +196,7 @@ public: ~QQuickListViewAttached() {} public: - QQuickItem *m_sectionItem; + QPointer<QQuickItem> m_sectionItem; }; |