From db17d3c17c40d6b0e92392cf3c6e343d1d17b771 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 10 Nov 2015 13:36:34 +0200 Subject: new loplugin: memoryvar detect when we can convert a new/delete sequence on a local variable to use std::unique_ptr Change-Id: Iecae4e4197eccdfacfce2eed39aa4a69e4a660bc Reviewed-on: https://gerrit.libreoffice.org/19884 Tested-by: Jenkins Reviewed-by: Noel Grandin --- sdext/source/minimizer/pppoptimizertoken.cxx | 6 +++--- sdext/source/pdfimport/wrapper/wrapper.cxx | 7 +++---- sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 8 +++----- 3 files changed, 9 insertions(+), 12 deletions(-) (limited to 'sdext') diff --git a/sdext/source/minimizer/pppoptimizertoken.cxx b/sdext/source/minimizer/pppoptimizertoken.cxx index d24b35e2998d..d99c49bfb15b 100644 --- a/sdext/source/minimizer/pppoptimizertoken.cxx +++ b/sdext/source/minimizer/pppoptimizertoken.cxx @@ -23,6 +23,7 @@ #include #include #include +#include typedef std::unordered_map< const char*, PPPOptimizerTokenEnum, rtl::CStringHash, rtl::CStringEqual> TypeNameHashMap; static TypeNameHashMap* pHashMap = nullptr; @@ -172,12 +173,11 @@ PPPOptimizerTokenEnum TKGet( const OUString& rToken ) } PPPOptimizerTokenEnum eRetValue = TK_NotFound; int i, nLen = rToken.getLength(); - char* pBuf = new char[ nLen + 1 ]; + std::unique_ptr pBuf(new char[ nLen + 1 ]); for ( i = 0; i < nLen; i++ ) pBuf[ i ] = (char)rToken[ i ]; pBuf[ i ] = 0; - TypeNameHashMap::iterator aHashIter( pHashMap->find( pBuf ) ); - delete[] pBuf; + TypeNameHashMap::iterator aHashIter( pHashMap->find( pBuf.get() ) ); if ( aHashIter != pHashMap->end() ) eRetValue = (*aHashIter).second; return eRetValue; diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx index 5e1584e4cfba..74e17f87c118 100644 --- a/sdext/source/pdfimport/wrapper/wrapper.cxx +++ b/sdext/source/pdfimport/wrapper/wrapper.cxx @@ -203,10 +203,10 @@ namespace { const size_t nOrigLen(sal::static_int_cast(i_rStr.getLength())); const sal_Char* const pOrig(i_rStr.getStr()); - sal_Char* const pBuffer(new sal_Char[nOrigLen + 1]); + std::unique_ptr pBuffer(new sal_Char[nOrigLen + 1]); const sal_Char* pRead(pOrig); - sal_Char* pWrite(pBuffer); + sal_Char* pWrite(pBuffer.get()); const sal_Char* pCur(pOrig); while ((pCur = strchr(pCur, '\\')) != nullptr) { @@ -237,8 +237,7 @@ namespace } *pWrite = '\0'; - OString aResult(pBuffer); - delete[] pBuffer; + OString aResult(pBuffer.get()); return aResult; } diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx index c81adc331dbf..b67d6613ba42 100644 --- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx +++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx @@ -26,6 +26,7 @@ #include #include +#include #if defined _MSC_VER #pragma warning(push, 1) @@ -309,11 +310,11 @@ void writePpm_( OutputBuffer& o_rOutputBuf, // initialize stream Guchar *p; GfxRGB rgb; - ImageStream* imgStr = + std::unique_ptr imgStr( new ImageStream(str, width, colorMap->getNumPixelComps(), - colorMap->getBits()); + colorMap->getBits())); imgStr->reset(); for( int y=0; ygetNumPixelComps(); } } - - delete imgStr; - } // call this only for 1 bit image streams ! -- cgit v1.2.3