summaryrefslogtreecommitdiff
path: root/svl/source/items/itempool.cxx
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2016-09-22 21:14:58 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2016-09-23 06:53:09 +0000
commitb74d2433c856d6d172d9588f4b6d59c31ec02853 (patch)
tree40f06f2bef1b36a542c7e69184d878bc44a66fe4 /svl/source/items/itempool.cxx
parent854254c36f4c4804bb5c8fcde2edef444baed25c (diff)
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.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svl/source/items/itempool.cxx')
-rw-r--r--svl/source/items/itempool.cxx13
1 files changed, 4 insertions, 9 deletions
diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx
index 6f4a6f210ad7..eb78949ed0e1 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);
}
}