[Libreoffice-commits] core.git: 2 commits - sd/source sw/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Jul 16 18:32:33 UTC 2019


 sd/source/ui/func/fumorph.cxx       |    6 +-
 sw/source/uibase/uiview/viewtab.cxx |   92 +++++++++++++++++++-----------------
 2 files changed, 53 insertions(+), 45 deletions(-)

New commits:
commit ae7131ecd8596ef16dd4c2f86abb830a78a602ce
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jul 16 12:03:54 2019 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jul 16 20:31:42 2019 +0200

    cid#1448540 Dereference null return value
    
    Change-Id: I675a19c19ef64480b5414d9b2bb7a5387533dc4a
    Reviewed-on: https://gerrit.libreoffice.org/75714
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/uibase/uiview/viewtab.cxx b/sw/source/uibase/uiview/viewtab.cxx
index bfc4594b3270..bc7c72c59040 100644
--- a/sw/source/uibase/uiview/viewtab.cxx
+++ b/sw/source/uibase/uiview/viewtab.cxx
@@ -2295,56 +2295,64 @@ void SwView::StateTabWin(SfxItemSet& rSet)
         case SID_ATTR_PAGE_BITMAP:
         {
             SfxItemSet aSet = rDesc.GetMaster().GetAttrSet();
-            drawing::FillStyle eXFS = aSet.GetItem(XATTR_FILLSTYLE)->GetValue();
-            XFillStyleItem aFillStyleItem( eXFS );
-            aFillStyleItem.SetWhich( SID_ATTR_PAGE_FILLSTYLE );
-            rSet.Put(aFillStyleItem);
-            switch(eXFS)
+            if (const auto pFillStyleItem = aSet.GetItem(XATTR_FILLSTYLE))
             {
-                case drawing::FillStyle_SOLID:
-                {
-                    Color aColor = aSet.GetItem<XFillColorItem>( XATTR_FILLCOLOR, false )->GetColorValue();
-                    XFillColorItem aFillColorItem( OUString(), aColor );
-                    aFillColorItem.SetWhich( SID_ATTR_PAGE_COLOR );
-                    rSet.Put( aFillColorItem );
-                }
-                break;
+                drawing::FillStyle eXFS = pFillStyleItem->GetValue();
+                XFillStyleItem aFillStyleItem( eXFS );
+                aFillStyleItem.SetWhich( SID_ATTR_PAGE_FILLSTYLE );
+                rSet.Put(aFillStyleItem);
 
-                case drawing::FillStyle_GRADIENT:
+                switch(eXFS)
                 {
-                    const XGradient& xGradient = aSet.GetItem<XFillGradientItem>( XATTR_FILLGRADIENT )->GetGradientValue();
-                    XFillGradientItem aFillGradientItem( OUString(), xGradient, SID_ATTR_PAGE_GRADIENT  );
-                    rSet.Put( aFillGradientItem );
-                }
-                break;
+                    case drawing::FillStyle_SOLID:
+                    {
+                        if (const auto pItem = aSet.GetItem<XFillColorItem>(XATTR_FILLCOLOR, false))
+                        {
+                            Color aColor = pItem->GetColorValue();
+                            XFillColorItem aFillColorItem( OUString(), aColor );
+                            aFillColorItem.SetWhich( SID_ATTR_PAGE_COLOR );
+                            rSet.Put( aFillColorItem );
+                        }
+                        break;
+                    }
 
-                case drawing::FillStyle_HATCH:
-                {
-                    const XFillHatchItem *pFillHatchItem( aSet.GetItem<XFillHatchItem>( XATTR_FILLHATCH ) );
-                    XFillHatchItem aFillHatchItem( pFillHatchItem->GetName(), pFillHatchItem->GetHatchValue());
-                    aFillHatchItem.SetWhich( SID_ATTR_PAGE_HATCH );
-                    rSet.Put( aFillHatchItem );
-                }
-                break;
+                    case drawing::FillStyle_GRADIENT:
+                    {
+                        const XGradient& xGradient = aSet.GetItem<XFillGradientItem>( XATTR_FILLGRADIENT )->GetGradientValue();
+                        XFillGradientItem aFillGradientItem( OUString(), xGradient, SID_ATTR_PAGE_GRADIENT  );
+                        rSet.Put( aFillGradientItem );
+                    }
+                    break;
 
-                case drawing::FillStyle_BITMAP:
-                {
-                    const XFillBitmapItem *pFillBitmapItem = aSet.GetItem<XFillBitmapItem>( XATTR_FILLBITMAP );
-                    XFillBitmapItem aFillBitmapItem( pFillBitmapItem->GetName(), pFillBitmapItem->GetGraphicObject() );
-                    aFillBitmapItem.SetWhich( SID_ATTR_PAGE_BITMAP );
-                    rSet.Put( aFillBitmapItem );
-                }
-                break;
-                case drawing::FillStyle_NONE:
-                {
-                }
-                break;
+                    case drawing::FillStyle_HATCH:
+                    {
+                        const XFillHatchItem *pFillHatchItem( aSet.GetItem<XFillHatchItem>( XATTR_FILLHATCH ) );
+                        XFillHatchItem aFillHatchItem( pFillHatchItem->GetName(), pFillHatchItem->GetHatchValue());
+                        aFillHatchItem.SetWhich( SID_ATTR_PAGE_HATCH );
+                        rSet.Put( aFillHatchItem );
+                    }
+                    break;
 
-                default:
-                break;
+                    case drawing::FillStyle_BITMAP:
+                    {
+                        const XFillBitmapItem *pFillBitmapItem = aSet.GetItem<XFillBitmapItem>( XATTR_FILLBITMAP );
+                        XFillBitmapItem aFillBitmapItem( pFillBitmapItem->GetName(), pFillBitmapItem->GetGraphicObject() );
+                        aFillBitmapItem.SetWhich( SID_ATTR_PAGE_BITMAP );
+                        rSet.Put( aFillBitmapItem );
+                    }
+                    break;
+                    case drawing::FillStyle_NONE:
+                    {
+                    }
+                    break;
+
+                    default:
+                    break;
+                }
             }
+            break;
         }
-        break;
+
         }
         nWhich = aIter.NextWhich();
     }
commit 55df612be5e3e2541f8e42f5122febfcffc77d68
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jul 16 11:50:36 2019 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jul 16 20:31:24 2019 +0200

    cid#1448419 Resource leak
    
    Change-Id: I1ca12ee7097ba2f4e644d3ff91cff1a49af49cbe
    Reviewed-on: https://gerrit.libreoffice.org/75713
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sd/source/ui/func/fumorph.cxx b/sd/source/ui/func/fumorph.cxx
index e97cf686e12f..f9827986f9da 100644
--- a/sd/source/ui/func/fumorph.cxx
+++ b/sd/source/ui/func/fumorph.cxx
@@ -380,8 +380,8 @@ void FuMorph::ImpInsertPolygons(
         return;
 
     SfxItemSet      aSet( aSet1 );
-    SdrObjGroup*    pObjGroup = new SdrObjGroup(mpView->getSdrModelFromSdrView());
-    SdrObjList*     pObjList = pObjGroup->GetSubList();
+    std::unique_ptr<SdrObjGroup, SdrObjectFreeOp> xObjGroup(new SdrObjGroup(mpView->getSdrModelFromSdrView()));
+    SdrObjList*     pObjList = xObjGroup->GetSubList();
     const size_t    nCount = rPolyPolyList3D.size();
     const double    fStep = 1. / ( nCount + 1 );
     const double    fDelta = nEndLineWidth - nStartLineWidth;
@@ -434,7 +434,7 @@ void FuMorph::ImpInsertPolygons(
             pObj2->CloneSdrObject(pObj2->getSdrModelFromSdrObject()) );
 
         mpView->DeleteMarked();
-        mpView->InsertObjectAtView( pObjGroup, *pPageView, SdrInsertFlags:: SETDEFLAYER );
+        mpView->InsertObjectAtView(xObjGroup.release(), *pPageView, SdrInsertFlags:: SETDEFLAYER);
     }
 }
 


More information about the Libreoffice-commits mailing list