summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/output.cxx
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@fixedpoint.jp>2014-05-14 14:52:56 +0900
committerTakeshi Abe <tabe@fixedpoint.jp>2014-05-14 15:09:55 +0900
commitdecfecc3d2414a6467bae6d5e9069fb63885e3fe (patch)
tree608a18ca59e97d5d136bf9d5d046541eed2f0907 /sc/source/ui/view/output.cxx
parent146f6e7e68ea56f79b72047b97bd9fba66db499d (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.cxx12
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();