sw/source/uibase/shells/drwbassh.cxx   |   20 +++++++-------------
 sw/source/uibase/shells/drwtxtex.cxx   |   16 +++++++---------
 sw/source/uibase/shells/drwtxtsh.cxx   |   13 +++++--------
 sw/source/uibase/shells/frmsh.cxx      |   27 +++++++++++----------------
 sw/source/uibase/shells/grfsh.cxx      |    6 +++---
 sw/source/uibase/shells/langhelper.cxx |    4 ++--
 6 files changed, 35 insertions(+), 51 deletions(-)

New commits:
commit ed9d32908dca5740109f0d9f3233721aa3a49775
Author: Takeshi Abe <t...@fixedpoint.jp>
Date:   Tue Jun 10 17:31:26 2014 +0900

    Avoid possible memory leaks in case of exceptions
    
    Change-Id: I0cb10efaa3ab08d2cf1338963917d89bdab15289

diff --git a/sw/source/uibase/shells/drwbassh.cxx 
b/sw/source/uibase/shells/drwbassh.cxx
index a03492d..b17d41b 100644
--- a/sw/source/uibase/shells/drwbassh.cxx
+++ b/sw/source/uibase/shells/drwbassh.cxx
@@ -64,6 +64,7 @@
 #include <com/sun/star/text/RelOrientation.hpp>
 
 #include <IDocumentDrawModelAccess.hxx>
+#include <boost/scoped_ptr.hpp>
 
 using namespace ::com::sun::star;
 
@@ -152,7 +153,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
                         SwAbstractDialogFactory* pFact = 
SwAbstractDialogFactory::Create();
                         OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
 
-                        SfxAbstractDialog* pDlg = pFact->CreateSwWrapDlg( 
GetView().GetWindow(), aSet, pSh, true, RC_DLG_SWWRAPDLG );
+                        boost::scoped_ptr<SfxAbstractDialog> 
pDlg(pFact->CreateSwWrapDlg( GetView().GetWindow(), aSet, pSh, true, 
RC_DLG_SWWRAPDLG ));
                         OSL_ENSURE(pDlg, "Dialogdiet fail!");
 
                         if (pDlg->Execute() == RET_OK)
@@ -170,7 +171,6 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
 
                             pSh->SetObjAttr(*pOutSet);
                         }
-                    delete pDlg;
                     }
                 }
             }
@@ -187,7 +187,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
                     if( rMarkList.GetMark(0) != 0 )
                     {
                         SdrObject* pObj = 
rMarkList.GetMark(0)->GetMarkedSdrObj();
-                        SfxAbstractTabDialog *pDlg=NULL;
+                        boost::scoped_ptr<SfxAbstractTabDialog> pDlg;
                         bool bCaption = false;
 
                         // Allowed anchorages:
@@ -207,7 +207,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
                             AbstractSvxCaptionDialog* pCaptionDlg =
                                     pFact->CreateCaptionDialog( NULL, 
pSdrView, nAllowedAnchors );
                             pCaptionDlg->SetValidateFramePosLink( LINK(this, 
SwDrawBaseShell, ValidatePosition) );
-                            pDlg = pCaptionDlg;
+                            pDlg.reset(pCaptionDlg);
                         }
                         else
                         {
@@ -215,7 +215,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
                             AbstractSvxTransformTabDialog* pTransform =
                                         pFact->CreateSvxTransformTabDialog( 
NULL, NULL, pSdrView, nAllowedAnchors );
                             pTransform->SetValidateFramePosLink( LINK(this, 
SwDrawBaseShell, ValidatePosition) );
-                            pDlg = pTransform;
+                            pDlg.reset(pTransform);
                         }
                         SfxItemSet aNewAttr(pSdrView->GetGeoAttrFromMarked());
 
@@ -347,8 +347,6 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
 
                             pSh->EndAllAction();
                         }
-                        delete pDlg;
-
                     }
                 }
                 else
@@ -529,7 +527,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
 
                 SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "Dialogdiet fail!");
-                AbstractSvxObjectNameDialog* pDlg = 
pFact->CreateSvxObjectNameDialog(NULL, aName);
+                boost::scoped_ptr<AbstractSvxObjectNameDialog> 
pDlg(pFact->CreateSvxObjectNameDialog(NULL, aName));
                 OSL_ENSURE(pDlg, "Dialogdiet fail!");
 
                 pDlg->SetCheckNameHdl(LINK(this, SwDrawBaseShell, 
CheckGroupShapeNameHdl));
@@ -540,8 +538,6 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
                     pSelected->SetName(aName);
                     pSh->SetModified();
                 }
-
-                delete pDlg;
             }
 
             break;
@@ -561,7 +557,7 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
 
                 SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "Dialogdiet fail!");
-                AbstractSvxObjectTitleDescDialog* pDlg = 
pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription);
+                boost::scoped_ptr<AbstractSvxObjectTitleDescDialog> 
pDlg(pFact->CreateSvxObjectTitleDescDialog(NULL, aTitle, aDescription));
                 OSL_ENSURE(pDlg, "Dialogdiet fail!");
 
                 if(RET_OK == pDlg->Execute())
@@ -574,8 +570,6 @@ void SwDrawBaseShell::Execute(SfxRequest &rReq)
 
                     pSh->SetModified();
                 }
-
-                delete pDlg;
             }
 
             break;
diff --git a/sw/source/uibase/shells/drwtxtex.cxx 
b/sw/source/uibase/shells/drwtxtex.cxx
index 775e2bf..e2f5990 100644
--- a/sw/source/uibase/shells/drwtxtex.cxx
+++ b/sw/source/uibase/shells/drwtxtex.cxx
@@ -99,6 +99,7 @@
 #include "swabstdlg.hxx"
 #include "chrdlg.hrc"
 #include "misc.hrc"
+#include <boost/scoped_ptr.hpp>
 
 const sal_uInt32 nFontInc = 40;      // 2pt
 const sal_uInt32 nFontMaxSz = 19998; // 999.9pt
@@ -323,7 +324,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
                 SwAbstractDialogFactory* pFact = 
SwAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
 
-                SfxAbstractTabDialog* pDlg = 
pFact->CreateSwCharDlg(pView->GetWindow(), *pView, aDlgAttr, DLG_CHAR_DRAW);
+                boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateSwCharDlg(pView->GetWindow(), *pView, aDlgAttr, 
DLG_CHAR_DRAW));
                 OSL_ENSURE(pDlg, "Dialogdiet fail!");
                 if (nSlot == SID_CHAR_DLG_EFFECT)
                 {
@@ -335,7 +336,6 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
                     rReq.Done( *( pDlg->GetOutputItemSet() ) );
                     aNewAttr.Put(*pDlg->GetOutputItemSet());
                 }
-                delete( pDlg );
                 if(RET_OK != nRet)
                     return ;
             }
@@ -348,10 +348,9 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
             OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
 
-            VclAbstractDialog* pDlg = 
pFact->CreateSwFootNoteOptionDlg(GetView().GetWindow(), rView.GetWrtShell());
+            boost::scoped_ptr<VclAbstractDialog> 
pDlg(pFact->CreateSwFootNoteOptionDlg(GetView().GetWindow(), 
rView.GetWrtShell()));
             OSL_ENSURE(pDlg, "Dialogdiet fail!");
             pDlg->Execute();
-            delete pDlg;
             break;
         }
         case FN_NUMBERING_OUTLINE_DLG:
@@ -359,11 +358,11 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
             SfxItemSet aTmp(GetPool(), FN_PARAM_1, FN_PARAM_1);
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
             OSL_ENSURE(pFact, "Dialogdiet fail!");
-            SfxAbstractTabDialog* pDlg = pFact->CreateSwTabDialog( 
DLG_TAB_OUTLINE,
-                                                        GetView().GetWindow(), 
&aTmp, GetView().GetWrtShell());
+            boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateSwTabDialog( DLG_TAB_OUTLINE,
+                                                        GetView().GetWindow(), 
&aTmp, GetView().GetWrtShell()));
             OSL_ENSURE(pDlg, "Dialogdiet fail!");
             pDlg->Execute();
-            delete pDlg;
+            pDlg.reset();
             rReq.Done();
         }
         break;
@@ -422,7 +421,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
                 SwAbstractDialogFactory* pFact = 
SwAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
 
-                SfxAbstractTabDialog* pDlg = pFact->CreateSwParaDlg( 
GetView().GetWindow(), GetView(), aDlgAttr,DLG_STD, 0, true );
+                boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateSwParaDlg( GetView().GetWindow(), GetView(), 
aDlgAttr,DLG_STD, 0, true ));
                 OSL_ENSURE(pDlg, "Dialogdiet fail!");
                 sal_uInt16 nRet = pDlg->Execute();
                 if(RET_OK == nRet)
@@ -430,7 +429,6 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
                     rReq.Done( *( pDlg->GetOutputItemSet() ) );
                     aNewAttr.Put(*pDlg->GetOutputItemSet());
                 }
-                delete( pDlg );
                 if(RET_OK != nRet)
                     return;
             }
diff --git a/sw/source/uibase/shells/drwtxtsh.cxx 
b/sw/source/uibase/shells/drwtxtsh.cxx
index 69bae22..f362e30 100644
--- a/sw/source/uibase/shells/drwtxtsh.cxx
+++ b/sw/source/uibase/shells/drwtxtsh.cxx
@@ -73,6 +73,7 @@
 #include <cppuhelper/bootstrap.hxx>
 #include "swabstdlg.hxx"
 #include "misc.hrc"
+#include <boost/scoped_ptr.hpp>
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
@@ -459,9 +460,9 @@ void SwDrawTextShell::ExecDraw(SfxRequest &rReq)
                 SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
                 if ( pFact )
                 {
-                    SfxAbstractTabDialog *pDlg = pFact->CreateTextTabDialog(
+                    boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateTextTabDialog(
                                 &(GetView().GetViewFrame()->GetWindow()),
-                                &aNewAttr, pSdrView );
+                                &aNewAttr, pSdrView ));
                     sal_uInt16 nResult = pDlg->Execute();
 
                     if (nResult == RET_OK)
@@ -472,8 +473,6 @@ void SwDrawTextShell::ExecDraw(SfxRequest &rReq)
                             rReq.Done(*(pDlg->GetOutputItemSet()));
                         }
                     }
-
-                    delete( pDlg );
                 }
             }
             break;
@@ -741,8 +740,8 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
 
         // If character is selected, it can be shown
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        SfxAbstractDialog* pDlg = pFact->CreateSfxDialog( rView.GetWindow(), 
aAllSet,
-            rView.GetViewFrame()->GetFrame().GetFrameInterface(), 
RID_SVXDLG_CHARMAP );
+        boost::scoped_ptr<SfxAbstractDialog> pDlg(pFact->CreateSfxDialog( 
rView.GetWindow(), aAllSet,
+            rView.GetViewFrame()->GetFrame().GetFrameInterface(), 
RID_SVXDLG_CHARMAP ));
         sal_uInt16 nResult = pDlg->Execute();
         if( nResult == RET_OK )
         {
@@ -763,8 +762,6 @@ void SwDrawTextShell::InsertSymbol(SfxRequest& rReq)
                 SW_MOD()->ApplyUsrPref(aOpt, &rView);
             }
         }
-
-        delete( pDlg );
     }
 
     if( !sSym.isEmpty() )
diff --git a/sw/source/uibase/shells/frmsh.cxx 
b/sw/source/uibase/shells/frmsh.cxx
index a420e80..e1c59e6 100644
--- a/sw/source/uibase/shells/frmsh.cxx
+++ b/sw/source/uibase/shells/frmsh.cxx
@@ -82,6 +82,7 @@
 
 #include <docsh.hxx>
 #include <svx/drawitem.hxx>
+#include <boost/scoped_ptr.hpp>
 
 using ::editeng::SvxBorderLine;
 using namespace ::com::sun::star;
@@ -240,10 +241,9 @@ void SwFrameShell::Execute(SfxRequest &rReq)
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
             OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
 
-            VclAbstractDialog* pDlg = 
pFact->CreateSwFootNoteOptionDlg(GetView().GetWindow(), 
GetView().GetWrtShell());
+            boost::scoped_ptr<VclAbstractDialog> 
pDlg(pFact->CreateSwFootNoteOptionDlg(GetView().GetWindow(), 
GetView().GetWrtShell()));
             OSL_ENSURE(pDlg, "Dialogdiet fail!");
             pDlg->Execute();
-            delete pDlg;
             break;
         }
         case FN_NUMBERING_OUTLINE_DLG:
@@ -251,11 +251,11 @@ void SwFrameShell::Execute(SfxRequest &rReq)
             SfxItemSet aTmp(GetPool(), FN_PARAM_1, FN_PARAM_1);
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
             OSL_ENSURE(pFact, "Dialogdiet fail!");
-            SfxAbstractTabDialog* pDlg = pFact->CreateSwTabDialog( 
DLG_TAB_OUTLINE,
-                                                        GetView().GetWindow(), 
&aTmp, GetView().GetWrtShell());
+            boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateSwTabDialog( DLG_TAB_OUTLINE,
+                                                        GetView().GetWindow(), 
&aTmp, GetView().GetWrtShell()));
             OSL_ENSURE(pDlg, "Dialogdiet fail!");
             pDlg->Execute();
-            delete pDlg;
+            pDlg.reset();
             rReq.Done();
             break;
         }
@@ -497,7 +497,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
                 SW_MOD()->PutItem(SfxUInt16Item(SID_ATTR_METRIC, static_cast< 
sal_uInt16 >(eMetric) ));
                 SwAbstractDialogFactory* pFact = 
SwAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "Dialogdiet fail!");
-                SfxAbstractTabDialog* pDlg = pFact->CreateFrmTabDialog(
+                boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateFrmTabDialog(
                                                         nSel & 
nsSelectionType::SEL_GRF ? "PictureDialog" :
                                                         nSel & 
nsSelectionType::SEL_OLE ? "ObjectDialog":
                                                                                
         "FrameDialog",
@@ -505,7 +505,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
                                                         GetView().GetWindow(),
                                                         aSet, false,
                                                         false,
-                                                        sDefPage);
+                                                        sDefPage));
                 OSL_ENSURE(pDlg, "Dialogdiet fail!");
 
                 if ( nSlot == FN_DRAW_WRAP_DLG )
@@ -627,7 +627,6 @@ void SwFrameShell::Execute(SfxRequest &rReq)
                 }
                 else
                     bUpdateMgr = false;
-                delete pDlg;
             }
         }
         break;
@@ -656,10 +655,10 @@ void SwFrameShell::Execute(SfxRequest &rReq)
 
                 SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
                 OSL_ENSURE(pFact, "Dialogdiet fail!");
-                AbstractSvxObjectTitleDescDialog* pDlg =
+                boost::scoped_ptr<AbstractSvxObjectTitleDescDialog> pDlg(
                     pFact->CreateSvxObjectTitleDescDialog( NULL,
                                                            aTitle,
-                                                           aDescription );
+                                                           aDescription ));
                 OSL_ENSURE(pDlg, "Dialogdiet fail!");
 
                 if ( pDlg->Execute() == RET_OK )
@@ -670,8 +669,6 @@ void SwFrameShell::Execute(SfxRequest &rReq)
                     rSh.SetObjDescription(aDescription);
                     rSh.SetObjTitle(aTitle);
                 }
-
-                delete pDlg;
             }
         }
         break;
@@ -1291,11 +1288,11 @@ void SwFrameShell::ExecDrawDlgTextFrame(SfxRequest& 
rReq)
 
                 SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
                 DBG_ASSERT(pFact, "Dialogdiet Factory fail!");
-                AbstractSvxAreaTabDialog * pDlg = 
pFact->CreateSvxAreaTabDialog(
+                boost::scoped_ptr<AbstractSvxAreaTabDialog> 
pDlg(pFact->CreateSvxAreaTabDialog(
                     NULL,
                     &aNewAttr,
                     pDoc,
-                    false);
+                    false));
                 DBG_ASSERT(pDlg, "Dialogdiet fail!");
 
                 if(RET_OK == pDlg->Execute())
@@ -1320,8 +1317,6 @@ void SwFrameShell::ExecDrawDlgTextFrame(SfxRequest& rReq)
                     rBnd.Update(SID_ATTR_FILL_TRANSPARENCE);
                     rBnd.Update(SID_ATTR_FILL_FLOATTRANSPARENCE);
                 }
-
-                delete pDlg;
             }
 
             break;
diff --git a/sw/source/uibase/shells/grfsh.cxx 
b/sw/source/uibase/shells/grfsh.cxx
index 23cc9bc..f60b2d4 100644
--- a/sw/source/uibase/shells/grfsh.cxx
+++ b/sw/source/uibase/shells/grfsh.cxx
@@ -79,6 +79,7 @@
 #include "swslots.hxx"
 
 #include "swabstdlg.hxx"
+#include <boost/scoped_ptr.hpp>
 
 #define TOOLBOX_NAME "colorbar"
 
@@ -339,10 +340,10 @@ void SwGrfShell::Execute(SfxRequest &rReq)
 
             SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
             OSL_ENSURE(pFact, "no dialog factory!");
-            SfxAbstractTabDialog* pDlg = 
pFact->CreateFrmTabDialog("PictureDialog",
+            boost::scoped_ptr<SfxAbstractTabDialog> 
pDlg(pFact->CreateFrmTabDialog("PictureDialog",
                                                     GetView().GetViewFrame(),
                                                     GetView().GetWindow(),
-                                                    aSet, false);
+                                                    aSet, false));
             OSL_ENSURE(pDlg, "no tab dialog!");
 
             if (nSlot == FN_DRAW_WRAP_DLG)
@@ -456,7 +457,6 @@ void SwGrfShell::Execute(SfxRequest &rReq)
                 rSh.EndUndo(UNDO_END);
                 rSh.EndAllAction();
             }
-            delete pDlg;
         }
         break;
 
diff --git a/sw/source/uibase/shells/langhelper.cxx 
b/sw/source/uibase/shells/langhelper.cxx
index d7fa3f5..62474b4 100644
--- a/sw/source/uibase/shells/langhelper.cxx
+++ b/sw/source/uibase/shells/langhelper.cxx
@@ -52,6 +52,7 @@
 #include <vcl/msgbox.hxx>
 
 #include <langhelper.hxx>
+#include <boost/scoped_ptr.hpp>
 
 using namespace ::com::sun::star;
 
@@ -125,9 +126,8 @@ namespace SwLangHelper
             SfxAbstractDialogFactory* pFact = 
SfxAbstractDialogFactory::Create();
             if (pFact)
             {
-                VclAbstractDialog* pDlg = pFact->CreateVclDialog( 
rView.GetWindow(), SID_LANGUAGE_OPTIONS );
+                boost::scoped_ptr<VclAbstractDialog> 
pDlg(pFact->CreateVclDialog( rView.GetWindow(), SID_LANGUAGE_OPTIONS ));
                 pDlg->Execute();
-                delete pDlg;
             }
         }
         else
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to