Avoid possible memory leaks in case of exceptions
Change-Id: I22d22a924d33b91ba6894857ce56b0d920102b4b
This commit is contained in:
@@ -252,9 +252,8 @@ bool SwGlossaries::RenameGroupDoc(
|
|||||||
m_GlosArr.push_back(rNewGroup);
|
m_GlosArr.push_back(rNewGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
SwTextBlocks* pNewBlock = new SwTextBlocks( sNewFileURL );
|
boost::scoped_ptr<SwTextBlocks> pNewBlock(new SwTextBlocks( sNewFileURL ));
|
||||||
pNewBlock->SetName(rNewTitle);
|
pNewBlock->SetName(rNewTitle);
|
||||||
delete pNewBlock;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
#include <editeng/frmdiritem.hxx>
|
#include <editeng/frmdiritem.hxx>
|
||||||
#include <fmtpdsc.hxx>
|
#include <fmtpdsc.hxx>
|
||||||
#include <fmtrowsplt.hxx>
|
#include <fmtrowsplt.hxx>
|
||||||
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
@@ -509,8 +510,8 @@ void SwFormatClipboard::Paste( SwWrtShell& rWrtShell, SfxStyleSheetBasePool* pPo
|
|||||||
if ( m_pItemSet_ParAttr && m_pItemSet_ParAttr->Count() != 0 && !bNoParagraphFormats )
|
if ( m_pItemSet_ParAttr && m_pItemSet_ParAttr->Count() != 0 && !bNoParagraphFormats )
|
||||||
{
|
{
|
||||||
// temporary SfxItemSet
|
// temporary SfxItemSet
|
||||||
SfxItemSet* pTemplateItemSet = lcl_CreateEmptyItemSet(
|
boost::scoped_ptr<SfxItemSet> pTemplateItemSet(lcl_CreateEmptyItemSet(
|
||||||
nSelectionType, *m_pItemSet_ParAttr->GetPool(), false);
|
nSelectionType, *m_pItemSet_ParAttr->GetPool(), false));
|
||||||
// no need to verify the existence of pTemplateItemSet as we
|
// no need to verify the existence of pTemplateItemSet as we
|
||||||
// know that here the selection type is SEL_TXT
|
// know that here the selection type is SEL_TXT
|
||||||
|
|
||||||
@@ -525,8 +526,6 @@ void SwFormatClipboard::Paste( SwWrtShell& rWrtShell, SfxStyleSheetBasePool* pPo
|
|||||||
// store the attributes in aItemVector in order not to apply them as
|
// store the attributes in aItemVector in order not to apply them as
|
||||||
// text automatic formatting attributes later in the code
|
// text automatic formatting attributes later in the code
|
||||||
lcl_AppendSetItems( aItemVector, *pTemplateItemSet);
|
lcl_AppendSetItems( aItemVector, *pTemplateItemSet);
|
||||||
|
|
||||||
delete pTemplateItemSet;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -544,8 +543,8 @@ void SwFormatClipboard::Paste( SwWrtShell& rWrtShell, SfxStyleSheetBasePool* pPo
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// temporary SfxItemSet
|
// temporary SfxItemSet
|
||||||
SfxItemSet* pTemplateItemSet = lcl_CreateEmptyItemSet(
|
boost::scoped_ptr<SfxItemSet> pTemplateItemSet(lcl_CreateEmptyItemSet(
|
||||||
nSelectionType, *m_pItemSet_TxtAttr->GetPool(), true );
|
nSelectionType, *m_pItemSet_TxtAttr->GetPool(), true ));
|
||||||
|
|
||||||
if(pTemplateItemSet)
|
if(pTemplateItemSet)
|
||||||
{
|
{
|
||||||
@@ -561,8 +560,6 @@ void SwFormatClipboard::Paste( SwWrtShell& rWrtShell, SfxStyleSheetBasePool* pPo
|
|||||||
rWrtShell.SetFlyFrmAttr(*pTemplateItemSet);
|
rWrtShell.SetFlyFrmAttr(*pTemplateItemSet);
|
||||||
else if ( !bNoCharacterFormats )
|
else if ( !bNoCharacterFormats )
|
||||||
rWrtShell.SetAttrSet(*pTemplateItemSet);
|
rWrtShell.SetAttrSet(*pTemplateItemSet);
|
||||||
|
|
||||||
delete pTemplateItemSet;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -78,6 +78,7 @@ using namespace ::com::sun::star;
|
|||||||
#include <IDocumentSettingAccess.hxx>
|
#include <IDocumentSettingAccess.hxx>
|
||||||
|
|
||||||
#include <unomid.h>
|
#include <unomid.h>
|
||||||
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
|
||||||
SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default")
|
SFX_IMPL_NAMED_VIEWFACTORY(SwView, "Default")
|
||||||
{
|
{
|
||||||
@@ -351,7 +352,7 @@ void SwView::StateViewOptions(SfxItemSet &rSet)
|
|||||||
|
|
||||||
void SwView::ExecViewOptions(SfxRequest &rReq)
|
void SwView::ExecViewOptions(SfxRequest &rReq)
|
||||||
{
|
{
|
||||||
SwViewOption* pOpt = new SwViewOption( *GetWrtShell().GetViewOptions() );
|
boost::scoped_ptr<SwViewOption> pOpt(new SwViewOption( *GetWrtShell().GetViewOptions() ));
|
||||||
bool bModified = GetWrtShell().IsModified();
|
bool bModified = GetWrtShell().IsModified();
|
||||||
|
|
||||||
int eState = STATE_TOGGLE;
|
int eState = STATE_TOGGLE;
|
||||||
@@ -550,7 +551,6 @@ void SwView::ExecViewOptions(SfxRequest &rReq)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
delete pOpt;
|
|
||||||
OSL_FAIL("wrong request method");
|
OSL_FAIL("wrong request method");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -591,7 +591,7 @@ void SwView::ExecViewOptions(SfxRequest &rReq)
|
|||||||
CalcVisArea( GetEditWin().GetOutputSizePixel() );
|
CalcVisArea( GetEditWin().GetOutputSizePixel() );
|
||||||
rSh.LockView( bLockedView );
|
rSh.LockView( bLockedView );
|
||||||
|
|
||||||
delete pOpt;
|
pOpt.reset();
|
||||||
Invalidate(rReq.GetSlot());
|
Invalidate(rReq.GetSlot());
|
||||||
if(!pArgs)
|
if(!pArgs)
|
||||||
rReq.AppendItem(SfxBoolItem(nSlot, bFlag));
|
rReq.AppendItem(SfxBoolItem(nSlot, bFlag));
|
||||||
|
@@ -2420,7 +2420,7 @@ void SwView::GenerateFormLetter(bool bUseCurrentDocument)
|
|||||||
// call documents and template dialog
|
// call documents and template dialog
|
||||||
SfxApplication* pSfxApp = SFX_APP();
|
SfxApplication* pSfxApp = SFX_APP();
|
||||||
Window* pTopWin = pSfxApp->GetTopWindow();
|
Window* pTopWin = pSfxApp->GetTopWindow();
|
||||||
SvtDocumentTemplateDialog* pDocTemplDlg = new SvtDocumentTemplateDialog( pTopWin );
|
boost::scoped_ptr<SvtDocumentTemplateDialog> pDocTemplDlg(new SvtDocumentTemplateDialog( pTopWin ));
|
||||||
pDocTemplDlg->SelectTemplateFolder();
|
pDocTemplDlg->SelectTemplateFolder();
|
||||||
|
|
||||||
int nRet = pDocTemplDlg->Execute();
|
int nRet = pDocTemplDlg->Execute();
|
||||||
@@ -2435,7 +2435,7 @@ void SwView::GenerateFormLetter(bool bUseCurrentDocument)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete pDocTemplDlg;
|
pDocTemplDlg.reset();
|
||||||
if ( bNewWin )
|
if ( bNewWin )
|
||||||
// after the destruction of the dialogue its parent comes to top,
|
// after the destruction of the dialogue its parent comes to top,
|
||||||
// but we want that the new document is on top
|
// but we want that the new document is on top
|
||||||
|
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include "swabstdlg.hxx"
|
#include "swabstdlg.hxx"
|
||||||
#include "dialog.hrc"
|
#include "dialog.hrc"
|
||||||
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
|
||||||
using namespace ::com::sun::star;
|
using namespace ::com::sun::star;
|
||||||
using namespace ::com::sun::star::ui::dialogs;
|
using namespace ::com::sun::star::ui::dialogs;
|
||||||
@@ -101,9 +102,9 @@ sal_Int16 SwXFilterOptions::execute() throw (uno::RuntimeException, std::excepti
|
|||||||
{
|
{
|
||||||
sal_Int16 nRet = ui::dialogs::ExecutableDialogResults::CANCEL;
|
sal_Int16 nRet = ui::dialogs::ExecutableDialogResults::CANCEL;
|
||||||
|
|
||||||
SvStream* pInStream = NULL;
|
boost::scoped_ptr<SvStream> pInStream;
|
||||||
if ( xInputStream.is() )
|
if ( xInputStream.is() )
|
||||||
pInStream = utl::UcbStreamHelper::CreateStream( xInputStream );
|
pInStream.reset(utl::UcbStreamHelper::CreateStream( xInputStream ));
|
||||||
|
|
||||||
uno::Reference< XUnoTunnel > xTunnel(xModel, uno::UNO_QUERY);
|
uno::Reference< XUnoTunnel > xTunnel(xModel, uno::UNO_QUERY);
|
||||||
SwDocShell* pDocShell = 0;
|
SwDocShell* pDocShell = 0;
|
||||||
@@ -119,8 +120,8 @@ sal_Int16 SwXFilterOptions::execute() throw (uno::RuntimeException, std::excepti
|
|||||||
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
|
SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
|
||||||
OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
|
OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!");
|
||||||
|
|
||||||
AbstractSwAsciiFilterDlg* pAsciiDlg = pFact->CreateSwAsciiFilterDlg(NULL, *pDocShell,
|
boost::scoped_ptr<AbstractSwAsciiFilterDlg> pAsciiDlg(pFact->CreateSwAsciiFilterDlg(NULL, *pDocShell,
|
||||||
pInStream);
|
pInStream.get()));
|
||||||
OSL_ENSURE(pAsciiDlg, "Dialogdiet fail!");
|
OSL_ENSURE(pAsciiDlg, "Dialogdiet fail!");
|
||||||
if(RET_OK == pAsciiDlg->Execute())
|
if(RET_OK == pAsciiDlg->Execute())
|
||||||
{
|
{
|
||||||
@@ -129,11 +130,8 @@ sal_Int16 SwXFilterOptions::execute() throw (uno::RuntimeException, std::excepti
|
|||||||
aOptions.WriteUserData(sFilterOptions);
|
aOptions.WriteUserData(sFilterOptions);
|
||||||
nRet = ui::dialogs::ExecutableDialogResults::OK;
|
nRet = ui::dialogs::ExecutableDialogResults::OK;
|
||||||
}
|
}
|
||||||
delete pAsciiDlg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
delete pInStream;
|
|
||||||
|
|
||||||
return nRet;
|
return nRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user