sfx2/source/control/itemdel.cxx | 4 ---- svl/source/items/itempool.cxx | 13 ++++--------- svl/source/items/poolio.cxx | 1 - 3 files changed, 4 insertions(+), 14 deletions(-)
New commits: commit b74d2433c856d6d172d9588f4b6d59c31ec02853 Author: Jochen Nitschke <j.nitschke+loger...@ok.de> Date: Thu Sep 22 21:14:58 2016 +0200 don't write item right before destruction SetRefCount writes only SfxPoolItem members m_nRefCount and m_nKind Change-Id: Ibd06d4edc619b9a840a8a232d9395dd85c452149 Reviewed-on: https://gerrit.libreoffice.org/29195 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sfx2/source/control/itemdel.cxx b/sfx2/source/control/itemdel.cxx index 096ab37..23f9009 100644 --- a/sfx2/source/control/itemdel.cxx +++ b/sfx2/source/control/itemdel.cxx @@ -59,10 +59,6 @@ void SfxItemDisruptor_Impl::LaunchDeleteOnIdle() SfxItemDisruptor_Impl::~SfxItemDisruptor_Impl() { m_Idle.Stop(); - - // reset RefCount (was set to SFX_ITEMS_SPECIAL before!) - pItem->SetRefCount( 0 ); - delete pItem; } diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx index 6f4a6f2..eb78949 100644 --- a/svl/source/items/itempool.cxx +++ b/svl/source/items/itempool.cxx @@ -334,9 +334,12 @@ void SfxItemPool::ReleaseDefaults for ( sal_uInt16 n = 0; n < nCount; ++n ) { assert(IsStaticDefaultItem(pDefaults[n])); - pDefaults[n]->SetRefCount(0); + if ( bDelete ) { delete pDefaults[n] ; pDefaults[n]= nullptr; } + else + pDefaults[n]->SetRefCount(0); + } if ( bDelete ) @@ -517,9 +520,6 @@ void SfxItemPool::Delete() auto& rItemPtr = pImpl->maPoolDefaults[n]; if (rItemPtr) { -#ifdef DBG_UTIL - SetRefCount(*rItemPtr, 0); -#endif delete rItemPtr; rItemPtr = nullptr; } @@ -549,9 +549,6 @@ void SfxItemPool::Delete() { if (rItemPtr) { -#ifdef DBG_UTIL - SetRefCount(*rItemPtr, 0); -#endif delete rItemPtr; rItemPtr = nullptr; } @@ -571,7 +568,6 @@ void SfxItemPool::SetPoolDefaultItem(const SfxPoolItem &rItem) pNewDefault->SetKind(SfxItemKind::PoolDefault); if (rOldDefault) { - rOldDefault->SetRefCount(0); DELETEZ(rOldDefault); } rOldDefault = pNewDefault; @@ -596,7 +592,6 @@ void SfxItemPool::ResetPoolDefaultItem( sal_uInt16 nWhichId ) pImpl->maPoolDefaults[GetIndex_Impl(nWhichId)]; if (rOldDefault) { - rOldDefault->SetRefCount(0); DELETEZ(rOldDefault); } } diff --git a/svl/source/items/poolio.cxx b/svl/source/items/poolio.cxx index 43e401d..0068fcd 100644 --- a/svl/source/items/poolio.cxx +++ b/svl/source/items/poolio.cxx @@ -451,7 +451,6 @@ void SfxItemPool_Impl::readTheItems ( { // Reuse SfxItemPool::AddRef( *pOldItem, rpNewItem->GetRefCount() ); - SfxItemPool::SetRefCount( *rpNewItem, 0 ); delete rpNewItem; rpNewItem = pOldItem; bFound = true; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits