diff options
-rw-r--r-- | sal/cppunittester/cppunittester.cxx | 10 | ||||
-rw-r--r-- | sal/textenc/tencinfo.cxx | 23 | ||||
-rw-r--r-- | sax/source/expatwrap/saxwriter.cxx | 7 | ||||
-rw-r--r-- | sax/source/expatwrap/xml2utf.cxx | 26 |
4 files changed, 27 insertions, 39 deletions
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx index f4c2fc6c299a..f8b9d6459502 100644 --- a/sal/cppunittester/cppunittester.cxx +++ b/sal/cppunittester/cppunittester.cxx @@ -47,6 +47,7 @@ #include "boost/noncopyable.hpp" #include "boost/ptr_container/ptr_vector.hpp" +#include <boost/scoped_array.hpp> #include "boost/static_assert.hpp" namespace { @@ -108,9 +109,9 @@ class EyecatcherListener public: void startTest( CppUnit::Test* test) SAL_OVERRIDE { - char* tn = new char [ test->getName().length() + 2 ]; - strcpy(tn, test->getName().c_str()); - int len = strlen(tn); + boost::scoped_array<char> tn(new char [ test->getName().length() + 2 ]); + strcpy(tn.get(), test->getName().c_str()); + int len = strlen(tn.get()); for(int i = 0; i < len; i++) { if(!isalnum(tn[i])) @@ -120,8 +121,7 @@ public: } tn[len] = '_'; tn[len + 1] = 0; - setenv("LO_TESTNAME", tn, true); - delete[] tn; + setenv("LO_TESTNAME", tn.get(), true); } void endTest( CppUnit::Test* /* test */ ) SAL_OVERRIDE diff --git a/sal/textenc/tencinfo.cxx b/sal/textenc/tencinfo.cxx index ccbfe4037d10..0aaa2ff0c446 100644 --- a/sal/textenc/tencinfo.cxx +++ b/sal/textenc/tencinfo.cxx @@ -26,6 +26,7 @@ #include "gettextencodingdata.hxx" #include "tenchelp.hxx" +#include <boost/scoped_array.hpp> sal_Bool SAL_CALL rtl_isOctetTextEncoding(rtl_TextEncoding nEncoding) { @@ -407,20 +408,19 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromUnixCharset( const char* pUnixC }; rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW; - char* pBuf; char* pTempBuf; sal_uInt32 nBufLen = strlen( pUnixCharset )+1; const char* pFirstPart; const char* pSecondPart; /* Alloc Buffer and map to lower case */ - pBuf = new char[nBufLen]; - Impl_toAsciiLower( pUnixCharset, pBuf ); + boost::scoped_array<char> pBuf(new char[nBufLen]); + Impl_toAsciiLower( pUnixCharset, pBuf.get() ); /* Search FirstPart */ - pFirstPart = pBuf; + pFirstPart = pBuf.get(); pSecondPart = NULL; - pTempBuf = pBuf; + pTempBuf = pBuf.get(); while ( *pTempBuf ) { if ( *pTempBuf == '-' ) @@ -463,8 +463,6 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromUnixCharset( const char* pUnixC } } - delete[] pBuf; - return eEncoding; } @@ -740,18 +738,17 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const char* pMimeC }; rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW; - char* pBuf; const ImplStrCharsetDef* pData = aVIPMimeCharsetTab; sal_uInt32 nBufLen = strlen( pMimeCharset )+1; /* Alloc Buffer and map to lower case and remove non alphanumeric chars */ - pBuf = new char[nBufLen]; - Impl_toAsciiLowerAndRemoveNonAlphanumeric( pMimeCharset, pBuf ); + boost::scoped_array<char> pBuf(new char[nBufLen]); + Impl_toAsciiLowerAndRemoveNonAlphanumeric( pMimeCharset, pBuf.get() ); /* Search for equal in the VIP table */ while ( pData->mpCharsetStr ) { - if ( strcmp( pBuf, pData->mpCharsetStr ) == 0 ) + if ( strcmp( pBuf.get(), pData->mpCharsetStr ) == 0 ) { eEncoding = pData->meTextEncoding; break; @@ -766,7 +763,7 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const char* pMimeC pData = aMimeCharsetTab; while ( pData->mpCharsetStr ) { - if ( Impl_matchString( pBuf, pData->mpCharsetStr ) ) + if ( Impl_matchString( pBuf.get(), pData->mpCharsetStr ) ) { eEncoding = pData->meTextEncoding; break; @@ -776,8 +773,6 @@ rtl_TextEncoding SAL_CALL rtl_getTextEncodingFromMimeCharset( const char* pMimeC } } - delete[] pBuf; - return eEncoding; } diff --git a/sax/source/expatwrap/saxwriter.cxx b/sax/source/expatwrap/saxwriter.cxx index 140bcfbca9f2..4dee83d543aa 100644 --- a/sax/source/expatwrap/saxwriter.cxx +++ b/sax/source/expatwrap/saxwriter.cxx @@ -49,6 +49,7 @@ using namespace ::com::sun::star::util; using namespace ::com::sun::star::io; #include "xml2utf.hxx" +#include <boost/scoped_array.hpp> namespace com { namespace sun { namespace star { namespace uno { class XComponentContext; @@ -493,11 +494,11 @@ inline void SaxWriterHelper::insertIndentation(sal_uInt32 m_nLevel) throw( SAXEx else { sal_uInt32 nCount(m_nLevel + 1); - sal_Int8* pBytes = new sal_Int8[nCount]; + boost::scoped_array<sal_Int8> pBytes(new sal_Int8[nCount]); pBytes[0] = LINEFEED; memset( &(pBytes[1]), 32, m_nLevel ); - AddBytes(mp_Sequence, nCurrentPos, pBytes, nCount); - delete[] pBytes; + AddBytes(mp_Sequence, nCurrentPos, pBytes.get(), nCount); + pBytes.reset(); nLastLineFeedPos = nCurrentPos - nCount; if (nCurrentPos == SEQUENCESIZE) nCurrentPos = writeSequence(); diff --git a/sax/source/expatwrap/xml2utf.cxx b/sax/source/expatwrap/xml2utf.cxx index 90e55dca6532..8a13823b98a6 100644 --- a/sax/source/expatwrap/xml2utf.cxx +++ b/sax/source/expatwrap/xml2utf.cxx @@ -32,6 +32,7 @@ using namespace ::com::sun::star::io; #include "xml2utf.hxx" +#include <boost/scoped_array.hpp> namespace sax_expatwrap { @@ -394,14 +395,14 @@ Sequence<sal_Unicode> Text2UnicodeConverter::convert( const Sequence<sal_Int8> & Sequence<sal_Unicode> seqUnicode ( nSourceSize ); const sal_Int8 *pbSource = seqText.getConstArray(); - sal_Int8 *pbTempMem = 0; + boost::scoped_array<sal_Int8> pbTempMem; if( m_seqSource.getLength() ) { // put old rest and new byte sequence into one array - pbTempMem = new sal_Int8[ nSourceSize ]; - memcpy( pbTempMem , m_seqSource.getConstArray() , m_seqSource.getLength() ); + pbTempMem.reset(new sal_Int8[ nSourceSize ]); + memcpy( pbTempMem.get() , m_seqSource.getConstArray() , m_seqSource.getLength() ); memcpy( &(pbTempMem[ m_seqSource.getLength() ]) , seqText.getConstArray() , seqText.getLength() ); - pbSource = pbTempMem; + pbSource = pbTempMem.get(); // set to zero again m_seqSource = Sequence< sal_Int8 >(); @@ -436,11 +437,6 @@ Sequence<sal_Unicode> Text2UnicodeConverter::convert( const Sequence<sal_Int8> & memcpy( m_seqSource.getArray() , &(pbSource[nSourceCount]) , nSourceSize-nSourceCount ); } - - if( pbTempMem ) { - delete [] pbTempMem; - } - // set to correct unicode size seqUnicode.realloc( nTargetCount ); @@ -471,7 +467,7 @@ Unicode2TextConverter::~Unicode2TextConverter() Sequence<sal_Int8> Unicode2TextConverter::convert(const sal_Unicode *puSource , sal_Int32 nSourceSize) { - sal_Unicode *puTempMem = 0; + boost::scoped_array<sal_Unicode> puTempMem; if( m_seqSource.getLength() ) { // For surrogates ! @@ -479,15 +475,15 @@ Sequence<sal_Int8> Unicode2TextConverter::convert(const sal_Unicode *puSource , // In general when surrogates are used, they should be rarely // cut off between two convert()-calls. So this code is used // rarely and the extra copy is acceptable. - puTempMem = new sal_Unicode[ nSourceSize + m_seqSource.getLength()]; - memcpy( puTempMem , + puTempMem.reset(new sal_Unicode[ nSourceSize + m_seqSource.getLength()]); + memcpy( puTempMem.get() , m_seqSource.getConstArray() , m_seqSource.getLength() * sizeof( sal_Unicode ) ); memcpy( &(puTempMem[ m_seqSource.getLength() ]) , puSource , nSourceSize*sizeof( sal_Unicode ) ); - puSource = puTempMem; + puSource = puTempMem.get(); nSourceSize += m_seqSource.getLength(); m_seqSource = Sequence< sal_Unicode > (); @@ -539,10 +535,6 @@ Sequence<sal_Int8> Unicode2TextConverter::convert(const sal_Unicode *puSource , (nSourceSize - nSourceCount) * sizeof( sal_Unicode ) ); } - if( puTempMem ) { - delete [] puTempMem; - } - // reduce the size of the buffer (fast, no copy necessary) seqText.realloc( nTargetCount ); |