From fc3dbb5c78d0f7c6eafc4cc0a0e253404e1794f5 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@digia.com> Date: Tue, 30 Jul 2013 10:05:21 +0200 Subject: [PATCH] Fix double deletion in jump list, introduce clear method. Change-Id: I81f672a3fac3a0ab55e52a4e598c4ee5d5db64b7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> --- src/winextras/qjumplist.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/winextras/qjumplist.cpp b/src/winextras/qjumplist.cpp index f211cca..aa82c21 100644 --- a/src/winextras/qjumplist.cpp +++ b/src/winextras/qjumplist.cpp @@ -294,6 +294,13 @@ public: } } + inline void clearItems() + { + isListBegan = false; + qDeleteAll(jumpListItems); + jumpListItems.clear(); + } + static QList<QJumpListItem *> fromComCollection(IObjectArray *array) { QList<QJumpListItem *> list; @@ -631,9 +638,7 @@ bool QJumpList::commit() d->appendCategory(); } - d->isListBegan = false; - qDeleteAll(d->jumpListItems); - d->jumpListItems.clear(); + d->clearItems(); HRESULT hresult = d->pDestList->CommitList(); if (FAILED(hresult)) QJumpListPrivate::warning("CommitList", hresult); @@ -650,10 +655,7 @@ bool QJumpList::abort() if (!d->pDestList) return false; - d->isListBegan = false; - qDeleteAll(d->jumpListItems); - qDeleteAll(d->jumpListItems); - d->jumpListItems.clear(); + d->clearItems(); HRESULT hresult = d->pDestList->AbortList(); if (FAILED(hresult)) QJumpListPrivate::warning("AbortList", hresult); -- GitLab