tdf#126000 Crash deleting template
regression from
commit 72c191e046112df73c66be8dc8d1bec5a546fa60
Date: Wed Sep 19 12:11:38 2018 +0200
loplugin:useuniqueptr in ThumbnailView
Change-Id: I9bdcec5c2f14b1bd33998041d4b2d8cd2f7be052
Reviewed-on: https://gerrit.libreoffice.org/74362
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index 5a90278..f9cbbae 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -2066,12 +2066,16 @@ void SfxThumbnailView::RemoveItem( sal_uInt16 nItemId )
if ( nPos < mFilteredItemList.size() ) {
// keep it alive until after we have deleted it from the filter item list
std::unique_ptr<ThumbnailViewItem> xKeepAliveViewItem;
// delete item from the thumbnail list
for (size_t i = 0, n = mItemList.size(); i < n; ++i)
for (auto it = mItemList.begin(); it != mItemList.end(); ++it)
{
if (mItemList[i]->mnId == nItemId)
if ((*it)->mnId == nItemId)
{
mItemList.erase(mItemList.begin()+i);
xKeepAliveViewItem = std::move(*it);
mItemList.erase(it);
break;
}
}
@@ -2086,7 +2090,6 @@ void SfxThumbnailView::RemoveItem( sal_uInt16 nItemId )
maItemStateHdl.Call(*it);
}
delete *it;
mFilteredItemList.erase( it );
mpStartSelRange = mFilteredItemList.end();
}