[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - svx/source

Julien Nabet (via logerrit) logerrit at kemper.freedesktop.org
Tue May 19 08:04:47 UTC 2020


 svx/source/sdr/properties/groupproperties.cxx |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

New commits:
commit 3817449c7a59e9dedbf882d401bc3aa85b3b0aab
Author:     Julien Nabet <serval2412 at yahoo.fr>
AuthorDate: Tue May 5 20:11:15 2020 +0200
Commit:     Michael Stahl <michael.stahl at cib.de>
CommitDate: Tue May 19 10:04:14 2020 +0200

    tdf#132730: fix assertion on group
    
    See bt here:
    https://bugs.documentfoundation.org/attachment.cgi?id=160397
    
    Implement GroupProperties::ClearObjectItem
    
    Change-Id: I967f8bda6e4a4edaccdb4a0bd2150bb2af2c1316
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93512
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    (cherry picked from commit c7709eb11cddc37883d1a2391a1dd83f03f5cfa3)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94271
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>

diff --git a/svx/source/sdr/properties/groupproperties.cxx b/svx/source/sdr/properties/groupproperties.cxx
index b5be536ede5b..ebedda8955f2 100644
--- a/svx/source/sdr/properties/groupproperties.cxx
+++ b/svx/source/sdr/properties/groupproperties.cxx
@@ -145,9 +145,22 @@ namespace sdr
             assert(!"GroupProperties::SetObjectItemDirect() should never be called");
         }
 
-        void GroupProperties::ClearObjectItem(const sal_uInt16 /*nWhich*/)
+        void GroupProperties::ClearObjectItem(const sal_uInt16 nWhich)
         {
-            assert(!"GroupProperties::ClearObjectItem() should never be called");
+            // iterate over contained SdrObjects
+            const SdrObjList* pSub(static_cast<const SdrObjGroup&>(GetSdrObject()).GetSubList());
+            OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)");
+            const size_t nCount(nullptr == pSub ? 0 : pSub->GetObjCount());
+
+            for(size_t a = 0; a < nCount; ++a)
+            {
+                SdrObject* pObj = pSub->GetObj(a);
+
+                if(pObj)
+                {
+                    pObj->GetProperties().ClearObjectItem(nWhich);
+                }
+            }
         }
 
         void GroupProperties::ClearObjectItemDirect(const sal_uInt16 /*nWhich*/)


More information about the Libreoffice-commits mailing list