aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-11-20 14:47:12 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-11-26 17:25:27 +0000
commit573b3cdaaf432b9eab2f2bbe35b6b4684d4a7c3d (patch)
tree9608c82729fb68527cac4e3d0d077fc391633a5f
parentd1de10fa2dce63cf45f7b013d00d1953415d6069 (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>
-rw-r--r--src/quick/items/qquicklistview.cpp4
-rw-r--r--src/quick/items/qquicklistview_p.h2
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;
};