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

Caolán McNamara caolanm at redhat.com
Thu Oct 10 12:07:11 PDT 2013


 cui/source/tabpages/backgrnd.cxx |   24 +++++++++---------------
 1 file changed, 9 insertions(+), 15 deletions(-)

New commits:
commit 95e582de1dec6c7b98d498b158ab8a1f4813c24e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Oct 10 20:05:08 2013 +0100

    CID#1103720 make leak impossible
    
    Change-Id: Ife34807a447aae474f1df29ce22f50b9e9d9cacf

diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index c52b4ba..cd82984 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -1625,8 +1625,8 @@ IMPL_LINK( SvxBackgroundTabPage, TblDestinationHdl_Impl, ListBox*, pBox )
     sal_uInt16 nSelPos = pBox->GetSelectEntryPos();
     if( pTableBck_Impl && pTableBck_Impl->nActPos != nSelPos)
     {
+        boost::scoped_ptr<SvxBrushItem> xItemHolder;
         SvxBrushItem* pActItem = NULL;
-        bool bDelete = false;
         sal_uInt16 nWhich = 0;
         switch(pTableBck_Impl->nActPos)
         {
@@ -1649,8 +1649,8 @@ IMPL_LINK( SvxBackgroundTabPage, TblDestinationHdl_Impl, ListBox*, pBox )
         pTableBck_Impl->nActPos = nSelPos;
         if(!pActItem)
         {
-            pActItem = new SvxBrushItem(nWhich);
-            bDelete = true;
+            xItemHolder.reset(new SvxBrushItem(nWhich));
+            pActItem = xItemHolder.get();
         }
         if(XFILL_SOLID == lcl_getFillStyle(m_pLbSelect))  // brush selected
         {
@@ -1693,25 +1693,19 @@ IMPL_LINK( SvxBackgroundTabPage, TblDestinationHdl_Impl, ListBox*, pBox )
             nWhich = pTableBck_Impl->nTableWhich;
             break;
         default:
-            if (bDelete)
-            {
-                // The item will be new'ed again below, but that will be the
-                // default item then, not an existing modified one.
-                delete pActItem;
-                bDelete = false;
-            }
+            // The item will be new'ed again below, but that will be the
+            // default item then, not an existing modified one.
+            xItemHolder.reset();
             pActItem = NULL;
             break;
         }
         OUString aUserData = GetUserData();
-        if(!pActItem)
+        if (!pActItem)
         {
-            pActItem = new SvxBrushItem(nWhich);
-            bDelete = true;
+            xItemHolder.reset(new SvxBrushItem(nWhich));
+            pActItem = xItemHolder.get();
         }
         FillControls_Impl(*pActItem, aUserData);
-        if (bDelete)
-            delete pActItem;
     }
     return 0;
 }


More information about the Libreoffice-commits mailing list