diff options
author | Mark Page <aptitude@btconnect.com> | 2016-11-30 14:10:30 +0000 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2016-11-30 22:08:03 +0000 |
commit | 64e6e7c6e7b881bf240de82ef020b290036e7e0e (patch) | |
tree | 9f4b4a2c1ac819f2583c1c0f9738984143507f18 /vcl/source/gdi/pngread.cxx | |
parent | 0de5101df0a8db41ad067b2575d16fd9b5a9a751 (diff) |
Use smart pointers for gdi pdf functions
Change-Id: Ia78adfbd0d07449e12a7e0d02acf8a1a1108437c
Reviewed-on: https://gerrit.libreoffice.org/31421
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'vcl/source/gdi/pngread.cxx')
-rw-r--r-- | vcl/source/gdi/pngread.cxx | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/vcl/source/gdi/pngread.cxx b/vcl/source/gdi/pngread.cxx index c26a84129de4..f7ea29e23e19 100644 --- a/vcl/source/gdi/pngread.cxx +++ b/vcl/source/gdi/pngread.cxx @@ -28,6 +28,7 @@ #include <vcl/svapp.hxx> #include <vcl/alpha.hxx> #include <osl/endian.h> +#include <o3tl/make_unique.hxx> namespace vcl { @@ -74,11 +75,12 @@ private: std::vector<vcl::PNGReader::ChunkData>::iterator maChunkIter; std::vector<sal_uInt8>::iterator maDataIter; - Bitmap* mpBmp; - BitmapWriteAccess* mpAcc; - Bitmap* mpMaskBmp; - AlphaMask* mpAlphaMask; - BitmapWriteAccess* mpMaskAcc; + std::unique_ptr<Bitmap> mpBmp; + BitmapWriteAccess* mpAcc; + std::unique_ptr<Bitmap> mpMaskBmp; + std::unique_ptr<AlphaMask> mpAlphaMask; + BitmapWriteAccess* mpMaskAcc; + ZCodec mpZCodec; sal_uInt8* mpInflateInBuf; // as big as the size of a scanline + alphachannel + 1 sal_uInt8* mpScanPrior; // pointer to the latest scanline @@ -165,10 +167,7 @@ public: PNGReaderImpl::PNGReaderImpl( SvStream& rPNGStream ) : mrPNGStream( rPNGStream ), - mpBmp ( nullptr ), mpAcc ( nullptr ), - mpMaskBmp ( nullptr ), - mpAlphaMask ( nullptr ), mpMaskAcc ( nullptr ), mpInflateInBuf ( nullptr ), mpScanPrior ( nullptr ), @@ -246,9 +245,6 @@ PNGReaderImpl::~PNGReaderImpl() if( mpColorTable != mpDefaultColorTable ) delete[] mpColorTable; - delete mpBmp; - delete mpAlphaMask; - delete mpMaskBmp; delete[] mpTransTab; delete[] mpInflateInBuf; delete[] mpScanPrior; @@ -665,14 +661,14 @@ bool PNGReaderImpl::ImplReadHeader( const Size& rPreviewSizeHint ) if ( !mpInflateInBuf || !mpScanPrior ) return false; - mpBmp = new Bitmap( maTargetSize, mnTargetDepth ); + mpBmp = o3tl::make_unique<Bitmap>( maTargetSize, mnTargetDepth ); mpAcc = mpBmp->AcquireWriteAccess(); if( !mpAcc ) return false; if ( mbAlphaChannel ) { - mpAlphaMask = new AlphaMask( maTargetSize ); + mpAlphaMask = o3tl::make_unique<AlphaMask>( maTargetSize ); mpAlphaMask->Erase( 128 ); mpMaskAcc = mpAlphaMask->AcquireWriteAccess(); if( !mpMaskAcc ) @@ -789,12 +785,12 @@ bool PNGReaderImpl::ImplReadTransparent() { if( bNeedAlpha) { - mpAlphaMask = new AlphaMask( maTargetSize ); + mpAlphaMask = o3tl::make_unique<AlphaMask>( maTargetSize ); mpMaskAcc = mpAlphaMask->AcquireWriteAccess(); } else { - mpMaskBmp = new Bitmap( maTargetSize, 1 ); + mpMaskBmp = o3tl::make_unique<Bitmap>( maTargetSize, 1 ); mpMaskAcc = mpMaskBmp->AcquireWriteAccess(); } mbTransparent = (mpMaskAcc != nullptr); |