[Libreoffice-commits] core.git: sfx2/source svl/source
Jochen Nitschke
j.nitschke+logerrit at ok.de
Fri Sep 23 06:55:22 UTC 2016
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+logerrit at 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.grandin at collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin at 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;
More information about the Libreoffice-commits
mailing list