summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sal/cppunittester/cppunittester.cxx10
-rw-r--r--sal/textenc/tencinfo.cxx23
-rw-r--r--sax/source/expatwrap/saxwriter.cxx7
-rw-r--r--sax/source/expatwrap/xml2utf.cxx26
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 );