Revert "don't write item right before destruction"

triggers warnings in the dtor if RefCount isn't reset.
revert till we have better ref counts and don't need debug code in dtor.

This reverts commit b74d2433c8.

Change-Id: I1835885d94e15339aa7602037d850e1524fd9662
Reviewed-on: https://gerrit.libreoffice.org/29427
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
This commit is contained in:
Jochen Nitschke
2016-10-01 09:50:36 +00:00
parent a77223b281
commit 32c29f79cb
3 changed files with 14 additions and 4 deletions

View File

@@ -59,6 +59,10 @@ 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;
}

View File

@@ -334,12 +334,9 @@ 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 )
@@ -520,6 +517,9 @@ void SfxItemPool::Delete()
auto& rItemPtr = pImpl->maPoolDefaults[n];
if (rItemPtr)
{
#ifdef DBG_UTIL
SetRefCount(*rItemPtr, 0);
#endif
delete rItemPtr;
rItemPtr = nullptr;
}
@@ -549,6 +549,9 @@ void SfxItemPool::Delete()
{
if (rItemPtr)
{
#ifdef DBG_UTIL
SetRefCount(*rItemPtr, 0);
#endif
delete rItemPtr;
rItemPtr = nullptr;
}
@@ -568,6 +571,7 @@ void SfxItemPool::SetPoolDefaultItem(const SfxPoolItem &rItem)
pNewDefault->SetKind(SfxItemKind::PoolDefault);
if (rOldDefault)
{
rOldDefault->SetRefCount(0);
DELETEZ(rOldDefault);
}
rOldDefault = pNewDefault;
@@ -592,6 +596,7 @@ void SfxItemPool::ResetPoolDefaultItem( sal_uInt16 nWhichId )
pImpl->maPoolDefaults[GetIndex_Impl(nWhichId)];
if (rOldDefault)
{
rOldDefault->SetRefCount(0);
DELETEZ(rOldDefault);
}
}

View File

@@ -470,6 +470,7 @@ void SfxItemPool_Impl::readTheItems (
{
// Reuse
SfxItemPool::AddRef( *pOldItem, rpNewItem->GetRefCount() );
SfxItemPool::SetRefCount( *rpNewItem, 0 );
delete rpNewItem;
rpNewItem = pOldItem;
bFound = true;