[Libreoffice-commits] core.git: vcl/generic vcl/source
Takeshi Abe
tabe at fixedpoint.jp
Thu Mar 6 23:36:34 PST 2014
vcl/generic/print/bitmap_gfx.cxx | 36 +++++++++++++++---------------------
vcl/source/app/dbggui.cxx | 4 ++--
vcl/source/edit/texteng.cxx | 5 +++--
vcl/source/filter/graphicfilter.cxx | 15 ++++++---------
vcl/source/gdi/bitmapex.cxx | 19 ++++++-------------
5 files changed, 32 insertions(+), 47 deletions(-)
New commits:
commit e0e2f4c988af9dc73c7b3ce086efddc0a918406d
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Fri Mar 7 16:34:17 2014 +0900
Avoid possible resource leaks with boost::scoped_ptr
Change-Id: I835bec5c43b7b4a8638d5032b720661fc2f1397f
diff --git a/vcl/generic/print/bitmap_gfx.cxx b/vcl/generic/print/bitmap_gfx.cxx
index 6ea8e33..f929944 100644
--- a/vcl/generic/print/bitmap_gfx.cxx
+++ b/vcl/generic/print/bitmap_gfx.cxx
@@ -23,6 +23,8 @@
#include "generic/printergfx.hxx"
#include "vcl/strhelper.hxx"
+#include <boost/scoped_ptr.hpp>
+
namespace psp {
const sal_uInt32 nLineLength = 80;
@@ -489,7 +491,7 @@ PrinterGfx::DrawPS1GrayImage (const PrinterBmp& rBitmap, const Rectangle& rArea)
WritePS (mpPageBody, pGrayImage);
// image body
- HexEncoder* pEncoder = new HexEncoder (mpPageBody);
+ boost::scoped_ptr<HexEncoder> pEncoder(new HexEncoder (mpPageBody));
for (long nRow = rArea.Top(); nRow <= rArea.Bottom(); nRow++)
{
@@ -500,7 +502,7 @@ PrinterGfx::DrawPS1GrayImage (const PrinterBmp& rBitmap, const Rectangle& rArea)
}
}
- delete pEncoder;
+ pEncoder.reset();
WritePS (mpPageBody, "\n");
}
@@ -572,8 +574,8 @@ PrinterGfx::writePS2Colorspace(const PrinterBmp& rBitmap, psp::ImageType nType)
nChar += psp::appendStr ("\npsp_ascii85string\n", pImage + nChar);
WritePS (mpPageBody, pImage);
- ByteEncoder* pEncoder = mbCompressBmp ? new LZWEncoder(mpPageBody)
- : new Ascii85Encoder(mpPageBody);
+ boost::scoped_ptr<ByteEncoder> pEncoder(mbCompressBmp ? new LZWEncoder(mpPageBody)
+ : new Ascii85Encoder(mpPageBody));
for (sal_uInt32 i = 0; i < nSize; i++)
{
PrinterColor aColor = rBitmap.GetPaletteColor(i);
@@ -582,7 +584,7 @@ PrinterGfx::writePS2Colorspace(const PrinterBmp& rBitmap, psp::ImageType nType)
pEncoder->EncodeByte (aColor.GetGreen());
pEncoder->EncodeByte (aColor.GetBlue());
}
- delete pEncoder;
+ pEncoder.reset();
WritePS (mpPageBody, "pop ] setcolorspace\n");
}
@@ -597,8 +599,8 @@ PrinterGfx::DrawPS2GrayImage (const PrinterBmp& rBitmap, const Rectangle& rArea)
writePS2Colorspace(rBitmap, psp::GrayScaleImage);
writePS2ImageHeader(rArea, psp::GrayScaleImage);
- ByteEncoder* pEncoder = mbCompressBmp ? new LZWEncoder(mpPageBody)
- : new Ascii85Encoder(mpPageBody);
+ boost::scoped_ptr<ByteEncoder> pEncoder(mbCompressBmp ? new LZWEncoder(mpPageBody)
+ : new Ascii85Encoder(mpPageBody));
for (long nRow = rArea.Top(); nRow <= rArea.Bottom(); nRow++)
{
@@ -608,8 +610,6 @@ PrinterGfx::DrawPS2GrayImage (const PrinterBmp& rBitmap, const Rectangle& rArea)
pEncoder->EncodeByte (nByte);
}
}
-
- delete pEncoder;
}
void
@@ -618,8 +618,8 @@ PrinterGfx::DrawPS2MonoImage (const PrinterBmp& rBitmap, const Rectangle& rArea)
writePS2Colorspace(rBitmap, psp::MonochromeImage);
writePS2ImageHeader(rArea, psp::MonochromeImage);
- ByteEncoder* pEncoder = mbCompressBmp ? new LZWEncoder(mpPageBody)
- : new Ascii85Encoder(mpPageBody);
+ boost::scoped_ptr<ByteEncoder> pEncoder(mbCompressBmp ? new LZWEncoder(mpPageBody)
+ : new Ascii85Encoder(mpPageBody));
for (long nRow = rArea.Top(); nRow <= rArea.Bottom(); nRow++)
{
@@ -643,8 +643,6 @@ PrinterGfx::DrawPS2MonoImage (const PrinterBmp& rBitmap, const Rectangle& rArea)
if (nBitPos != 0)
pEncoder->EncodeByte (nByte);
}
-
- delete pEncoder;
}
void
@@ -653,8 +651,8 @@ PrinterGfx::DrawPS2PaletteImage (const PrinterBmp& rBitmap, const Rectangle& rAr
writePS2Colorspace(rBitmap, psp::PaletteImage);
writePS2ImageHeader(rArea, psp::PaletteImage);
- ByteEncoder* pEncoder = mbCompressBmp ? new LZWEncoder(mpPageBody)
- : new Ascii85Encoder(mpPageBody);
+ boost::scoped_ptr<ByteEncoder> pEncoder(mbCompressBmp ? new LZWEncoder(mpPageBody)
+ : new Ascii85Encoder(mpPageBody));
for (long nRow = rArea.Top(); nRow <= rArea.Bottom(); nRow++)
{
@@ -664,8 +662,6 @@ PrinterGfx::DrawPS2PaletteImage (const PrinterBmp& rBitmap, const Rectangle& rAr
pEncoder->EncodeByte (nByte);
}
}
-
- delete pEncoder;
}
void
@@ -674,8 +670,8 @@ PrinterGfx::DrawPS2TrueColorImage (const PrinterBmp& rBitmap, const Rectangle& r
writePS2Colorspace(rBitmap, psp::TrueColorImage);
writePS2ImageHeader(rArea, psp::TrueColorImage);
- ByteEncoder* pEncoder = mbCompressBmp ? new LZWEncoder(mpPageBody)
- : new Ascii85Encoder(mpPageBody);
+ boost::scoped_ptr<ByteEncoder> pEncoder(mbCompressBmp ? new LZWEncoder(mpPageBody)
+ : new Ascii85Encoder(mpPageBody));
for (long nRow = rArea.Top(); nRow <= rArea.Bottom(); nRow++)
{
@@ -687,8 +683,6 @@ PrinterGfx::DrawPS2TrueColorImage (const PrinterBmp& rBitmap, const Rectangle& r
pEncoder->EncodeByte (aColor.GetBlue());
}
}
-
- delete pEncoder;
}
} /* namespace psp */
diff --git a/vcl/source/app/dbggui.cxx b/vcl/source/app/dbggui.cxx
index 4ff4db9..ac2cdd0 100644
--- a/vcl/source/app/dbggui.cxx
+++ b/vcl/source/app/dbggui.cxx
@@ -58,6 +58,7 @@
#include <map>
#include <algorithm>
+#include <boost/scoped_ptr.hpp>
using namespace ::com::sun::star;
@@ -1649,13 +1650,12 @@ void DbgGUIStart()
if ( pData )
{
- DbgDialog* pDialog = new DbgDialog;
+ boost::scoped_ptr<DbgDialog> pDialog(new DbgDialog);
// we switch off dialog tests for the debug dialog
sal_uLong nOldFlags = pData->nTestFlags;
pData->nTestFlags &= ~DBG_TEST_DIALOG;
if ( !pDialog->Execute() )
pData->nTestFlags |= (nOldFlags & DBG_TEST_DIALOG);
- delete pDialog;
}
else
{
diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx
index 5567c90..74fb8bc 100644
--- a/vcl/source/edit/texteng.cxx
+++ b/vcl/source/edit/texteng.cxx
@@ -57,6 +57,7 @@
#include <set>
#include <vector>
#include <boost/foreach.hpp>
+#include <boost/scoped_ptr.hpp>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -615,7 +616,7 @@ TextPaM TextEngine::ImpDeleteText( const TextSelection& rSel )
void TextEngine::ImpRemoveParagraph( sal_uLong nPara )
{
TextNode* pNode = mpDoc->GetNodes().GetObject( nPara );
- TEParaPortion* pPortion = mpTEParaPortions->GetObject( nPara );
+ boost::scoped_ptr<TEParaPortion> pPortion(mpTEParaPortions->GetObject( nPara ));
// the Node is handled by Undo and is deleted if appropriate
mpDoc->GetNodes().Remove( nPara );
@@ -625,7 +626,7 @@ void TextEngine::ImpRemoveParagraph( sal_uLong nPara )
delete pNode;
mpTEParaPortions->Remove( nPara );
- delete pPortion;
+ pPortion.reset();
ImpParagraphRemoved( nPara );
}
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index c3a4454..7840d61 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -63,6 +63,7 @@
#include <rtl/instance.hxx>
#include <vcl/metaact.hxx>
#include <vector>
+#include <boost/scoped_ptr.hpp>
#include "FilterConfigCache.hxx"
@@ -828,7 +829,7 @@ static Graphic ImpGetScaledGraphic( const Graphic& rGraphic, FilterConfigItem& r
{
Graphic aGraphic;
- ResMgr* pResMgr = ResMgr::CreateResMgr( "svt", Application::GetSettings().GetUILanguageTag() );
+ boost::scoped_ptr<ResMgr> pResMgr(ResMgr::CreateResMgr( "svt", Application::GetSettings().GetUILanguageTag() ));
sal_Int32 nLogicalWidth = rConfigItem.ReadInt32( "LogicalWidth", 0 );
sal_Int32 nLogicalHeight = rConfigItem.ReadInt32( "LogicalHeight", 0 );
@@ -919,8 +920,6 @@ static Graphic ImpGetScaledGraphic( const Graphic& rGraphic, FilterConfigItem& r
else
aGraphic = rGraphic;
- delete pResMgr;
-
return aGraphic;
}
@@ -1289,11 +1288,10 @@ sal_uInt16 GraphicFilter::CanImportGraphic( const INetURLObject& rPath,
DBG_ASSERT( rPath.GetProtocol() != INET_PROT_NOT_VALID, "GraphicFilter::CanImportGraphic() : ProtType == INET_PROT_NOT_VALID" );
OUString aMainUrl( rPath.GetMainURL( INetURLObject::NO_DECODE ) );
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aMainUrl, STREAM_READ | STREAM_SHARE_DENYNONE );
+ boost::scoped_ptr<SvStream> pStream(::utl::UcbStreamHelper::CreateStream( aMainUrl, STREAM_READ | STREAM_SHARE_DENYNONE ));
if ( pStream )
{
nRetValue = CanImportGraphic( aMainUrl, *pStream, nFormat, pDeterminedFormat );
- delete pStream;
}
return nRetValue;
}
@@ -1320,11 +1318,10 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const INetURLObject&
DBG_ASSERT( rPath.GetProtocol() != INET_PROT_NOT_VALID, "GraphicFilter::ImportGraphic() : ProtType == INET_PROT_NOT_VALID" );
OUString aMainUrl( rPath.GetMainURL( INetURLObject::NO_DECODE ) );
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aMainUrl, STREAM_READ | STREAM_SHARE_DENYNONE );
+ boost::scoped_ptr<SvStream> pStream(::utl::UcbStreamHelper::CreateStream( aMainUrl, STREAM_READ | STREAM_SHARE_DENYNONE ));
if ( pStream )
{
nRetValue = ImportGraphic( rGraphic, aMainUrl, *pStream, nFormat, pDeterminedFormat, nImportFlags );
- delete pStream;
}
return nRetValue;
}
@@ -1816,11 +1813,11 @@ sal_uInt16 GraphicFilter::ExportGraphic( const Graphic& rGraphic, const INetURLO
bool bAlreadyExists = DirEntryExists( rPath );
OUString aMainUrl( rPath.GetMainURL( INetURLObject::NO_DECODE ) );
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aMainUrl, STREAM_WRITE | STREAM_TRUNC );
+ boost::scoped_ptr<SvStream> pStream(::utl::UcbStreamHelper::CreateStream( aMainUrl, STREAM_WRITE | STREAM_TRUNC ));
if ( pStream )
{
nRetValue = ExportGraphic( rGraphic, aMainUrl, *pStream, nFormat, pFilterData );
- delete pStream;
+ pStream.reset();
if( ( GRFILTER_OK != nRetValue ) && !bAlreadyExists )
KillDirEntry( aMainUrl );
diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx
index b9a6311..8eb4613 100644
--- a/vcl/source/gdi/bitmapex.cxx
+++ b/vcl/source/gdi/bitmapex.cxx
@@ -44,6 +44,7 @@
#include <salinst.hxx>
#include <svdata.hxx>
#include <com/sun/star/beans/XFastPropertySet.hpp>
+#include <boost/scoped_ptr.hpp>
using namespace ::com::sun::star;
BitmapEx::BitmapEx() :
@@ -793,11 +794,10 @@ bool BitmapEx::Create( const ::com::sun::star::uno::Reference<
{
// 0 means get BitmapEx
uno::Any aAny = xFastPropertySet->getFastPropertyValue( 0 );
- BitmapEx* pBitmapEx = (BitmapEx*) *reinterpret_cast<const sal_Int64*>(aAny.getValue());
+ boost::scoped_ptr<BitmapEx> pBitmapEx((BitmapEx*) *reinterpret_cast<const sal_Int64*>(aAny.getValue()));
if( pBitmapEx )
{
*this = *pBitmapEx;
- delete pBitmapEx;
return true;
}
}
@@ -839,12 +839,12 @@ namespace
bool bSmooth)
{
Bitmap aDestination(aDestinationSize, 24);
- BitmapWriteAccess* pWrite = aDestination.AcquireWriteAccess();
+ boost::scoped_ptr<BitmapWriteAccess> pWrite(aDestination.AcquireWriteAccess());
if(pWrite)
{
//const Size aContentSizePixel(rSource.GetSizePixel());
- BitmapReadAccess* pRead = (const_cast< Bitmap& >(rSource)).AcquireReadAccess();
+ boost::scoped_ptr<BitmapReadAccess> pRead((const_cast< Bitmap& >(rSource)).AcquireReadAccess());
if(pRead)
{
@@ -881,11 +881,7 @@ namespace
}
}
}
-
- delete pRead;
}
-
- delete pWrite;
}
rSource.AdaptBitCount(aDestination);
@@ -1032,7 +1028,7 @@ BitmapEx BitmapEx::ModifyBitmapEx(const basegfx::BColorModifierStack& rBColorMod
// do NOT use erase; for e.g. 8bit Bitmaps, the nearest color to the given
// erase color is determined and used -> this may be different from what is
// wanted here. Better create a new bitmap with the needed color explicitely
- BitmapReadAccess* pReadAccess = aChangedBitmap.AcquireReadAccess();
+ boost::scoped_ptr<BitmapReadAccess> pReadAccess(aChangedBitmap.AcquireReadAccess());
OSL_ENSURE(pReadAccess, "Got no Bitmap ReadAccess ?!?");
if(pReadAccess)
@@ -1043,7 +1039,6 @@ BitmapEx BitmapEx::ModifyBitmapEx(const basegfx::BColorModifierStack& rBColorMod
aChangedBitmap.GetSizePixel(),
aChangedBitmap.GetBitCount(),
&aNewPalette);
- delete pReadAccess;
}
}
else
@@ -1061,7 +1056,7 @@ BitmapEx BitmapEx::ModifyBitmapEx(const basegfx::BColorModifierStack& rBColorMod
}
else
{
- BitmapWriteAccess* pContent = aChangedBitmap.AcquireWriteAccess();
+ boost::scoped_ptr<BitmapWriteAccess> pContent(aChangedBitmap.AcquireWriteAccess());
if(pContent)
{
@@ -1137,8 +1132,6 @@ BitmapEx BitmapEx::ModifyBitmapEx(const basegfx::BColorModifierStack& rBColorMod
}
}
}
-
- delete pContent;
}
}
}
More information about the Libreoffice-commits
mailing list