diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-01-21 09:28:12 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-01-26 09:01:47 +0000 |
commit | 6fed035cf1eb62db8029e615e1b5f2d3ab825f78 (patch) | |
tree | db414217564febbc50902692e9f8ef8b6e4a2224 /vcl | |
parent | a9e35171cfcb741c221151f6fd9c0026349f6f76 (diff) |
valgrind: memleak on thrown exception
(cherry picked from commit f5aefab2a62a90c631e05ec29022a2f7e19f00c3)
Change-Id: I2788c5fe04a984d6534adbd3186cc652685152e8
Reviewed-on: https://gerrit.libreoffice.org/21737
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
(cherry picked from commit 636d45438f317d7ef39d660c11f6bab1dc42302a)
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/filter/wmf/enhwmf.cxx | 6 | ||||
-rw-r--r-- | vcl/source/filter/wmf/winmtf.cxx | 10 | ||||
-rw-r--r-- | vcl/source/filter/wmf/winmtf.hxx | 2 | ||||
-rw-r--r-- | vcl/source/filter/wmf/winwmf.cxx | 4 |
4 files changed, 10 insertions, 12 deletions
diff --git a/vcl/source/filter/wmf/enhwmf.cxx b/vcl/source/filter/wmf/enhwmf.cxx index bb029b55ef43..dfc7790d2d10 100644 --- a/vcl/source/filter/wmf/enhwmf.cxx +++ b/vcl/source/filter/wmf/enhwmf.cxx @@ -1244,7 +1244,7 @@ bool EnhWMFReader::ReadEnhWMF() Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) ); aBitmap.Crop( aCropRect ); } - aBmpSaveList.push_back( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ) ); + aBmpSaveList.emplace_back(new BSaveStruct(aBitmap, aRect, dwRop, pOut->GetFillStyle ())); } } } @@ -1305,7 +1305,7 @@ bool EnhWMFReader::ReadEnhWMF() Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) ); aBitmap.Crop( aCropRect ); } - aBmpSaveList.push_back( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ) ); + aBmpSaveList.emplace_back(new BSaveStruct(aBitmap, aRect, dwRop, pOut->GetFillStyle ())); } } } @@ -1372,7 +1372,7 @@ bool EnhWMFReader::ReadEnhWMF() Rectangle aCropRect( Point( xSrc, ySrc ), Size( cxSrc, cySrc ) ); aBitmap.Crop( aCropRect ); } - aBmpSaveList.push_back( new BSaveStruct( aBitmap, aRect, dwRop, pOut->GetFillStyle () ) ); + aBmpSaveList.emplace_back(new BSaveStruct(aBitmap, aRect, dwRop, pOut->GetFillStyle ())); } } } diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx index c19642ad9fb5..3f71773d3af9 100644 --- a/vcl/source/filter/wmf/winmtf.cxx +++ b/vcl/source/filter/wmf/winmtf.cxx @@ -1576,7 +1576,7 @@ void WinMtfOutput::ResolveBitmapActions( BSaveStructList_impl& rSaveList ) size_t nObjectsOfSameSize = 0; size_t nObjectStartIndex = nObjects - nObjectsLeft; - BSaveStruct* pSave = rSaveList[ nObjectStartIndex ]; + BSaveStruct* pSave = rSaveList[nObjectStartIndex].get(); Rectangle aRect( pSave->aOutRect ); for ( i = nObjectStartIndex; i < nObjects; ) @@ -1584,7 +1584,7 @@ void WinMtfOutput::ResolveBitmapActions( BSaveStructList_impl& rSaveList ) nObjectsOfSameSize++; if ( ++i < nObjects ) { - pSave = rSaveList[ i ]; + pSave = rSaveList[i].get(); if ( pSave->aOutRect != aRect ) break; } @@ -1594,7 +1594,7 @@ void WinMtfOutput::ResolveBitmapActions( BSaveStructList_impl& rSaveList ) for ( i = nObjectStartIndex; i < ( nObjectStartIndex + nObjectsOfSameSize ); i++ ) { - pSave = rSaveList[ i ]; + pSave = rSaveList[i].get(); sal_uInt32 nWinRop = pSave->nWinRop; sal_uInt8 nRasterOperation = (sal_uInt8)( nWinRop >> 16 ); @@ -1622,7 +1622,7 @@ void WinMtfOutput::ResolveBitmapActions( BSaveStructList_impl& rSaveList ) { if ( nObjectsOfSameSize == 2 ) { - BSaveStruct* pSave2 = rSaveList[ i + 1 ]; + BSaveStruct* pSave2 = rSaveList[i + 1].get(); if ( ( pSave->aBmp.GetPrefSize() == pSave2->aBmp.GetPrefSize() ) && ( pSave->aBmp.GetPrefMapMode() == pSave2->aBmp.GetPrefMapMode() ) ) { @@ -1791,8 +1791,6 @@ void WinMtfOutput::ResolveBitmapActions( BSaveStructList_impl& rSaveList ) nObjectsLeft -= nObjectsOfSameSize; } - for( size_t i = 0, n = rSaveList.size(); i < n; ++i ) - delete rSaveList[ i ]; rSaveList.clear(); } diff --git a/vcl/source/filter/wmf/winmtf.hxx b/vcl/source/filter/wmf/winmtf.hxx index 087c3f2d5db1..0a0cf3d5b34b 100644 --- a/vcl/source/filter/wmf/winmtf.hxx +++ b/vcl/source/filter/wmf/winmtf.hxx @@ -470,7 +470,7 @@ struct BSaveStruct {} }; -typedef ::std::vector< BSaveStruct* > BSaveStructList_impl; +typedef std::vector<std::unique_ptr<BSaveStruct>> BSaveStructList_impl; enum GDIObjectType { diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx index 64508ef7dbfa..1b590e4cca15 100644 --- a/vcl/source/filter/wmf/winwmf.cxx +++ b/vcl/source/filter/wmf/winwmf.cxx @@ -680,7 +680,7 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) aBmp.Crop( aCropRect ); } Rectangle aDestRect( aPoint, Size( nSxe, nSye ) ); - aBmpSaveList.push_back( new BSaveStruct( aBmp, aDestRect, nWinROP, pOut->GetFillStyle () ) ); + aBmpSaveList.emplace_back(new BSaveStruct(aBmp, aDestRect, nWinROP, pOut->GetFillStyle ())); } } } @@ -730,7 +730,7 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc ) Rectangle aCropRect( Point( nSx, nSy ), Size( nSxe, nSye ) ); aBmp.Crop( aCropRect ); } - aBmpSaveList.push_back( new BSaveStruct( aBmp, aDestRect, nWinROP, pOut->GetFillStyle () ) ); + aBmpSaveList.emplace_back(new BSaveStruct(aBmp, aDestRect, nWinROP, pOut->GetFillStyle ())); } } } |