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/output.cxx | |
parent | 146f6e7e68ea56f79b72047b97bd9fba66db499d (diff) |
Avoid possible memory leaks in case of exceptions
Change-Id: Ib74c40bb4ac11edf97b6843e983a911308fa4b98
Diffstat (limited to 'sc/source/ui/view/output.cxx')
-rw-r--r-- | sc/source/ui/view/output.cxx | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 6dae6ef6d1ed..5fd547f15a19 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -69,6 +69,7 @@ #include <map> #include <utility> #include <iostream> +#include <boost/scoped_ptr.hpp> using namespace com::sun::star; @@ -1368,7 +1369,7 @@ void ScOutputData::DrawFrame() // draw only rows with set RowInfo::bChanged flag size_t nRow1 = nFirstRow; - drawinglayer::processor2d::BaseProcessor2D* pProcessor = CreateProcessor2D(); + boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(CreateProcessor2D()); if (!pProcessor) return; @@ -1379,12 +1380,11 @@ void ScOutputData::DrawFrame() { size_t nRow2 = nRow1; while( (nRow2 + 1 <= nLastRow) && pRowInfo[ nRow2 + 1 ].bChanged ) ++nRow2; - rArray.DrawRange( pProcessor, nFirstCol, nRow1, nLastCol, nRow2, pForceColor ); + rArray.DrawRange( pProcessor.get(), nFirstCol, nRow1, nLastCol, nRow2, pForceColor ); nRow1 = nRow2 + 1; } } - if ( pProcessor ) - delete pProcessor; + pProcessor.reset(); mpDev->SetDrawMode(nOldDrawMode); } @@ -1493,7 +1493,7 @@ void ScOutputData::DrawRotatedFrame( const Color* pForceColor ) mpDev->SetClipRegion( Region( aClipRect ) ); svx::frame::Array& rArray = mrTabInfo.maArray; - drawinglayer::processor2d::BaseProcessor2D* pProcessor = CreateProcessor2D( ); + boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(CreateProcessor2D( )); long nPosY = nScrY; for (SCSIZE nArrY=1; nArrY<nArrCount; nArrY++) @@ -1798,7 +1798,7 @@ void ScOutputData::DrawRotatedFrame( const Color* pForceColor ) nPosY += nRowHeight; } - if ( pProcessor ) delete pProcessor; + pProcessor.reset(); if (bMetaFile) mpDev->Pop(); |