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

Reply via email to