diff options
author | Takeshi Abe <tabe@fixedpoint.jp> | 2014-05-14 14:52:56 +0900 |
---|---|---|
committer | Takeshi Abe <tabe@fixedpoint.jp> | 2014-05-14 15:09:55 +0900 |
commit | decfecc3d2414a6467bae6d5e9069fb63885e3fe (patch) | |
tree | 608a18ca59e97d5d136bf9d5d046541eed2f0907 /sc/source/ui/view/gridwin4.cxx | |
parent | 146f6e7e68ea56f79b72047b97bd9fba66db499d (diff) |
Avoid possible memory leaks in case of exceptions
Change-Id: Ib74c40bb4ac11edf97b6843e983a911308fa4b98
Diffstat (limited to 'sc/source/ui/view/gridwin4.cxx')
-rw-r--r-- | sc/source/ui/view/gridwin4.cxx | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 5405b898023e..2625a96376dc 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -917,7 +917,7 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, } Font aFont; - ScEditEngineDefaulter* pEditEng = NULL; + boost::scoped_ptr<ScEditEngineDefaulter> pEditEng; const ScPatternAttr& rDefPattern = ((const ScPatternAttr&)pDoc->GetPool()->GetDefaultItem(ATTR_PATTERN)); if ( nPageScript == SCRIPTTYPE_LATIN ) { @@ -929,7 +929,7 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, else { // use EditEngine to draw mixed-script string - pEditEng = new ScEditEngineDefaulter( EditEngine::CreatePool(), true ); + pEditEng.reset(new ScEditEngineDefaulter( EditEngine::CreatePool(), true )); pEditEng->SetRefMapMode( pContentDev->GetMapMode() ); SfxItemSet* pEditDefaults = new SfxItemSet( pEditEng->GetEmptyItemSet() ); rDefPattern.FillEditItemSet( pEditDefaults ); @@ -1093,8 +1093,6 @@ void ScGridWindow::DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, } } } - - delete pEditEng; } } @@ -1111,7 +1109,7 @@ void ScGridWindow::DrawButtons( SCCOL nX1, SCCOL nX2, ScTableInfo& rTabInfo, Out SCSIZE nQuery; SCTAB nTab = pViewData->GetTabNo(); ScDBData* pDBData = NULL; - ScQueryParam* pQueryParam = NULL; + boost::scoped_ptr<ScQueryParam> pQueryParam; RowInfo* pRowInfo = rTabInfo.mpRowInfo; sal_uInt16 nArrCount = rTabInfo.mnArrCount; @@ -1138,7 +1136,7 @@ void ScGridWindow::DrawButtons( SCCOL nX1, SCCOL nX2, ScTableInfo& rTabInfo, Out if ( pInfo->bAutoFilter && !pInfo->bHOverlapped ) { if (!pQueryParam) - pQueryParam = new ScQueryParam; + pQueryParam.reset(new ScQueryParam); bool bNewData = true; if (pDBData) @@ -1249,7 +1247,7 @@ void ScGridWindow::DrawButtons( SCCOL nX1, SCCOL nX2, ScTableInfo& rTabInfo, Out } } - delete pQueryParam; + pQueryParam.reset(); aComboButton.SetOutputDevice( this ); } |