From 9e60d29be40dfcc66604cb642e699d4febf032dc Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 18 May 2018 10:53:26 +0200 Subject: tdf#117539 Crash after cut and paste operation of a chart stick regression from commit 3d44b720f58366398e7f59c00dba6339712a670f loplugin:useuniqueptr in SfxItemPool_Impl where I accidentally removed some fallback code. Note that this does not fix the underlying bug where some pool is not correctly set up. Also, this only fixes the bug that I introduced in the above commit, another bug in the same area has subsequently been introduced, causing a crash in a different area when performing this operation. Change-Id: Iaae3b0dc82c740b498e3735273820647ef28fd01 Reviewed-on: https://gerrit.libreoffice.org/54522 Tested-by: Jenkins Reviewed-by: Noel Grandin --- svl/source/items/itemset.cxx | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'svl/source/items/itemset.cxx') diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx index e967089e17ee..0be3d7105525 100644 --- a/svl/source/items/itemset.cxx +++ b/svl/source/items/itemset.cxx @@ -94,6 +94,12 @@ SfxItemSet::SfxItemSet(SfxItemPool& rPool) { m_pWhichRanges = const_cast(m_pPool->GetFrozenIdRanges()); assert( m_pWhichRanges && "don't create ItemSets with full range before FreezeIdRanges()" ); + if (!m_pWhichRanges) + { + std::unique_ptr tmp; + m_pPool->FillItemIdRanges_Impl(tmp); + m_pWhichRanges = tmp.release(); + } const sal_uInt16 nSize = TotalCount(); m_pItems.reset(new const SfxPoolItem*[nSize]{}); -- cgit