diff options
-rw-r--r-- | svl/source/items/nranges.cxx | 24 | ||||
-rw-r--r-- | svl/source/items/poolio.cxx | 9 | ||||
-rw-r--r-- | svl/source/misc/PasswordHelper.cxx | 13 | ||||
-rw-r--r-- | vcl/unx/generic/app/saldisp.cxx | 7 | ||||
-rw-r--r-- | vcl/unx/generic/printer/jobdata.cxx | 7 |
5 files changed, 28 insertions, 32 deletions
diff --git a/svl/source/items/nranges.cxx b/svl/source/items/nranges.cxx index c9fc72d51e93..13d58b02df57 100644 --- a/svl/source/items/nranges.cxx +++ b/svl/source/items/nranges.cxx @@ -20,7 +20,7 @@ #include <cassert> #include <vector> // compiled via include from itemset.cxx only! - +#include <boost/scoped_array.hpp> #ifdef DBG_UTIL @@ -436,9 +436,9 @@ SfxUShortRanges& SfxUShortRanges::operator -= // (size is computed for maximal possibly split-count plus terminating 0) sal_uInt16 nThisSize = Count_Impl(_pRanges); sal_uInt16 nTargetSize = 1 + ( nThisSize + Count_Impl(rRanges._pRanges) ); - sal_uInt16 *pTarget = new sal_uInt16[ nTargetSize ]; - memset( pTarget, 0, sizeof(sal_uInt16)*nTargetSize ); - memcpy( pTarget, _pRanges, sizeof(sal_uInt16)*nThisSize ); + boost::scoped_array<sal_uInt16> pTarget(new sal_uInt16[ nTargetSize ]); + memset( pTarget.get(), 0, sizeof(sal_uInt16)*nTargetSize ); + memcpy( pTarget.get(), _pRanges, sizeof(sal_uInt16)*nThisSize ); sal_uInt16 nPos1 = 0, nPos2 = 0, nTargetPos = 0; while( _pRanges[ nPos1 ] ) @@ -540,16 +540,15 @@ SfxUShortRanges& SfxUShortRanges::operator -= // assign the differentiated ranges delete[] _pRanges; - sal_uInt16 nUShorts = Count_Impl(pTarget) + 1; + sal_uInt16 nUShorts = Count_Impl(pTarget.get()) + 1; if ( 1 != nUShorts ) { _pRanges = new sal_uInt16[ nUShorts ]; - memcpy( _pRanges, pTarget, nUShorts * sizeof(sal_uInt16) ); + memcpy( _pRanges, pTarget.get(), nUShorts * sizeof(sal_uInt16) ); } else _pRanges = 0; - delete [] pTarget; return *this; } @@ -587,9 +586,9 @@ SfxUShortRanges& SfxUShortRanges::operator /= // (size is computed for maximal possibly split-count plus terminating 0) sal_uInt16 nThisSize = Count_Impl(_pRanges); sal_uInt16 nTargetSize = 1 + ( nThisSize + Count_Impl(rRanges._pRanges) ); - sal_uInt16 *pTarget = new sal_uInt16[ nTargetSize ]; - memset( pTarget, 0, sizeof(sal_uInt16)*nTargetSize ); - memcpy( pTarget, _pRanges, sizeof(sal_uInt16)*nThisSize ); + boost::scoped_array<sal_uInt16> pTarget(new sal_uInt16[ nTargetSize ]); + memset( pTarget.get(), 0, sizeof(sal_uInt16)*nTargetSize ); + memcpy( pTarget.get(), _pRanges, sizeof(sal_uInt16)*nThisSize ); sal_uInt16 nPos1 = 0, nPos2 = 0, nTargetPos = 0; while( _pRanges[ nPos1 ] != 0 && rRanges._pRanges[ nPos2 ] != 0 ) @@ -659,16 +658,15 @@ SfxUShortRanges& SfxUShortRanges::operator /= // assign the intersected ranges delete[] _pRanges; - sal_uInt16 nUShorts = Count_Impl(pTarget) + 1; + sal_uInt16 nUShorts = Count_Impl(pTarget.get()) + 1; if ( 1 != nUShorts ) { _pRanges = new sal_uInt16[ nUShorts ]; - memcpy( _pRanges, pTarget, nUShorts * sizeof(sal_uInt16) ); + memcpy( _pRanges, pTarget.get(), nUShorts * sizeof(sal_uInt16) ); } else _pRanges = 0; - delete [] pTarget; return *this; } diff --git a/svl/source/items/poolio.cxx b/svl/source/items/poolio.cxx index 90d952ad76de..7f2dc56bd1a1 100644 --- a/svl/source/items/poolio.cxx +++ b/svl/source/items/poolio.cxx @@ -28,6 +28,7 @@ #include <svl/brdcst.hxx> #include <svl/filerec.hxx> #include "poolio.hxx" +#include <boost/scoped_array.hpp> // STATIC DATA ----------------------------------------------------------- @@ -762,10 +763,10 @@ SvStream &SfxItemPool::Load1_Impl(SvStream &rStream) CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_SIZES ); sal_uInt32 nSizeTableLen(0); rStream.ReadUInt32( nSizeTableLen ); - sal_Char *pBuf = new sal_Char[nSizeTableLen]; - rStream.Read( pBuf, nSizeTableLen ); + boost::scoped_array<sal_Char> pBuf(new sal_Char[nSizeTableLen]); + rStream.Read( pBuf.get(), nSizeTableLen ); sal_uLong nEndOfSizes = rStream.Tell(); - SvMemoryStream aSizeTable( pBuf, nSizeTableLen, STREAM_READ ); + SvMemoryStream aSizeTable( pBuf.get(), nSizeTableLen, STREAM_READ ); // ab Version 1.3 steht in der Size-Table eine Versions-Map if ( pImp->nMajorVer > 1 || pImp->nMinorVer >= 3 ) @@ -968,7 +969,7 @@ SvStream &SfxItemPool::Load1_Impl(SvStream &rStream) rStream.Seek( nPos + nSize ); } - delete[] pBuf; + pBuf.reset(); rStream.Seek(nEndOfSizes); CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_ENDPOOL ); CHECK_FILEFORMAT( rStream, SFX_ITEMPOOL_TAG_ENDPOOL ); diff --git a/svl/source/misc/PasswordHelper.cxx b/svl/source/misc/PasswordHelper.cxx index 78102e8c3f73..43d320dfb8f1 100644 --- a/svl/source/misc/PasswordHelper.cxx +++ b/svl/source/misc/PasswordHelper.cxx @@ -20,6 +20,7 @@ #include <svl/PasswordHelper.hxx> #include <rtl/digest.h> +#include <boost/scoped_array.hpp> using namespace com::sun::star; @@ -37,7 +38,7 @@ void SvPasswordHelper::GetHashPassword(uno::Sequence<sal_Int8>& rPassHash, const void SvPasswordHelper::GetHashPasswordLittleEndian(uno::Sequence<sal_Int8>& rPassHash, const OUString& sPass) { sal_Int32 nSize(sPass.getLength()); - sal_Char* pCharBuffer = new sal_Char[nSize * sizeof(sal_Unicode)]; + boost::scoped_array<sal_Char> pCharBuffer(new sal_Char[nSize * sizeof(sal_Unicode)]); for (sal_Int32 i = 0; i < nSize; ++i) { @@ -46,15 +47,13 @@ void SvPasswordHelper::GetHashPasswordLittleEndian(uno::Sequence<sal_Int8>& rPas pCharBuffer[2 * i + 1] = static_cast< sal_Char >(ch >> 8); } - GetHashPassword(rPassHash, pCharBuffer, nSize * sizeof(sal_Unicode)); - - delete[] pCharBuffer; + GetHashPassword(rPassHash, pCharBuffer.get(), nSize * sizeof(sal_Unicode)); } void SvPasswordHelper::GetHashPasswordBigEndian(uno::Sequence<sal_Int8>& rPassHash, const OUString& sPass) { sal_Int32 nSize(sPass.getLength()); - sal_Char* pCharBuffer = new sal_Char[nSize * sizeof(sal_Unicode)]; + boost::scoped_array<sal_Char> pCharBuffer(new sal_Char[nSize * sizeof(sal_Unicode)]); for (sal_Int32 i = 0; i < nSize; ++i) { @@ -63,9 +62,7 @@ void SvPasswordHelper::GetHashPasswordBigEndian(uno::Sequence<sal_Int8>& rPassHa pCharBuffer[2 * i + 1] = static_cast< sal_Char >(ch & 0xFF); } - GetHashPassword(rPassHash, pCharBuffer, nSize * sizeof(sal_Unicode)); - - delete[] pCharBuffer; + GetHashPassword(rPassHash, pCharBuffer.get(), nSize * sizeof(sal_Unicode)); } void SvPasswordHelper::GetHashPassword(uno::Sequence<sal_Int8>& rPassHash, const OUString& sPass) diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx index 99060cdd5325..51063cba3ffb 100644 --- a/vcl/unx/generic/app/saldisp.cxx +++ b/vcl/unx/generic/app/saldisp.cxx @@ -77,6 +77,7 @@ Status XineramaGetInfo(Display*, int, XRectangle*, unsigned char*, int*); #include <osl/socket.h> #include <poll.h> +#include <boost/scoped_array.hpp> using namespace vcl_sal; @@ -2647,7 +2648,7 @@ void SalColormap::GetPalette() Pixel i; m_aPalette = std::vector<SalColor>(m_nUsed); - XColor *aColor = new XColor[m_nUsed]; + boost::scoped_array<XColor> aColor(new XColor[m_nUsed]); for( i = 0; i < m_nUsed; i++ ) { @@ -2655,7 +2656,7 @@ void SalColormap::GetPalette() aColor[i].pixel = i; } - XQueryColors( m_pDisplay->GetDisplay(), m_hColormap, aColor, m_nUsed ); + XQueryColors( m_pDisplay->GetDisplay(), m_hColormap, aColor.get(), m_nUsed ); for( i = 0; i < m_nUsed; i++ ) { @@ -2663,8 +2664,6 @@ void SalColormap::GetPalette() aColor[i].green >> 8, aColor[i].blue >> 8 ); } - - delete [] aColor; } static sal_uInt16 sal_Lookup( const std::vector<SalColor>& rPalette, diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx index f9a9d3f2c674..4ee83c5aadc1 100644 --- a/vcl/unx/generic/printer/jobdata.cxx +++ b/vcl/unx/generic/printer/jobdata.cxx @@ -25,6 +25,7 @@ #include <sal/alloca.h> #include <rtl/strbuf.hxx> +#include <boost/scoped_array.hpp> using namespace psp; @@ -175,10 +176,10 @@ bool JobData::getStreamBuffer( void*& pData, int& bytes ) // now append the PPDContext stream buffer aStream.WriteLine( "PPDContexData" ); sal_uLong nBytes; - char* pContextBuffer = m_aContext.getStreamableBuffer( nBytes ); + boost::scoped_array<char> pContextBuffer(m_aContext.getStreamableBuffer( nBytes )); if( nBytes ) - aStream.Write( pContextBuffer, nBytes ); - delete [] pContextBuffer; + aStream.Write( pContextBuffer.get(), nBytes ); + pContextBuffer.reset(); // success pData = rtl_allocateMemory( bytes = aStream.Tell() ); |