[Libreoffice-commits] core.git: svl/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Dec 14 11:44:58 UTC 2018


 svl/source/items/itempool.cxx |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

New commits:
commit c5d0d424bd7e78455cb6f9578cf2425ac0787004
Author:     Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Thu Dec 13 17:10:29 2018 +0100
Commit:     Xisco FaulĂ­ <xiscofauli at libreoffice.org>
CommitDate: Fri Dec 14 12:44:30 2018 +0100

    tdf#120750: Revert "tdf#96248 delete SfxPoolItems with Which Id >= 4000"
    
    This reverts commit c9493b344a9bd104d0a882f5e9407880c0c63c20.
    
    According to
    https://bugs.documentfoundation.org/show_bug.cgi?id=96248#c15
    the asert was gone even before the patch...
    
    Anyway, better to have an assert than a crash
    
    Change-Id: I84389bf2e8e604f6967923c0eedaae3aec3455e6
    Reviewed-on: https://gerrit.libreoffice.org/65115
    Tested-by: Jenkins
    Reviewed-by: Jochen Nitschke <j.nitschke+logerrit at ok.de>
    Reviewed-by: Xisco FaulĂ­ <xiscofauli at libreoffice.org>

diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx
index f40c1bca5578..f0945aaf3b2e 100644
--- a/svl/source/items/itempool.cxx
+++ b/svl/source/items/itempool.cxx
@@ -765,9 +765,16 @@ void SfxItemPool::Remove( const SfxPoolItem& rItem )
         SfxPoolItem*& p = (*pItemArr)[nIdx];
         assert(p == &rItem);
 
-        assert(p->GetRefCount() && "removing Item without ref");
+        if ( p->GetRefCount() ) //!
+            ReleaseRef( *p );
+        else
+        {
+            assert(false && "removing Item without ref");
+        }
 
-        if (0 == ReleaseRef(*p))
+        // FIXME: Hack, for as long as we have problems with the Outliner
+        // See other MI-REF
+        if ( 0 == p->GetRefCount() && nWhich < 4000 )
         {
             DELETEZ(p);
 


More information about the Libreoffice-commits mailing list