[ubuntu] Reset the model *before* entering the page

Clearing the model while it's being used in the ListView produces a
crash with Qt 5.4.1. Valgrind logs:

==13926== Invalid read of size 8
==13926==    at 0x4FD95BF: QQuickWindowPrivate::polishItems() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x4FA6EF2: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x4FA7978: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x5E86AF4: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x5E86C2A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x5EDEAE4: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x5EDEF60: timerSourceDispatch(_GSource*, int (*)(void*), void*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x841FC3C: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4392.0)
==13926==    by 0x841FF1F: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4392.0)
==13926==    by 0x841FFCB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4392.0)
==13926==    by 0x5EDFC56: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x5E843E1: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==  Address 0x210d8e50 is 0 bytes inside a block of size 32 free'd
==13926==    at 0x4C2D2E0: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13926==    by 0x5EB618B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x5EC07F2: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x4FCD865: QQuickItem::~QQuickItem() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x4FE77C5: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x505FC02: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x50B55C8: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x4FD95C7: QQuickWindowPrivate::polishItems() (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x4FA6EF2: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x4FA7978: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5.4.1)
==13926==    by 0x5E86AF4: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
==13926==    by 0x5E86C2A: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.4.1)
This commit is contained in:
Alberto Mardegan 2015-04-09 21:47:45 +03:00
parent 19caad3bb1
commit 9be3881701
2 changed files with 1 additions and 1 deletions

View file

@ -23,7 +23,6 @@ Page {
feedItems.feed = feeditemsPage.feed
feedItems.hasMoreItems = false
feedItems.continuation = 0
feedItems.clear()
var ttrss = rootWindow.getTTRSS()
ttrss.setShowAll(settings.showAll)
feedItems.update()

View file

@ -151,6 +151,7 @@ Page {
function showFeed(feedModel) {
if (feedModel != null) {
feedItems.clear()
pageStack.push(Qt.resolvedUrl("FeedItems.qml"), {
feed: feedModel
})