Kaydet (Commit) fbf5599c authored tarafından Takeshi Abe's avatar Takeshi Abe

Avoid possible memory leaks in case of exceptions

Change-Id: Id71cb49d8aa241a17efd4cbe217a48f2d7c34e84
üst e04c36b4
......@@ -47,6 +47,7 @@
#include <LibXSLTTransformer.hxx>
#include <OleHandler.hxx>
#include <boost/scoped_ptr.hpp>
using namespace ::rtl;
using namespace ::cppu;
......@@ -307,11 +308,11 @@ namespace XSLT
xsltSetGenericDebugFunc(stderr, NULL);
xsltDebugDumpExtensions(NULL);
#endif
OleHandler* oh = new OleHandler(m_transformer->getComponentContext());
boost::scoped_ptr<OleHandler> oh(new OleHandler(m_transformer->getComponentContext()));
if (styleSheet)
{
tcontext = xsltNewTransformContext(styleSheet, doc);
tcontext->_private = static_cast<void *> (oh);
tcontext->_private = static_cast<void *> (oh.get());
xsltQuoteUserParams(tcontext, &params[0]);
result = xsltApplyStylesheetUser(styleSheet, doc, 0, 0, 0,
tcontext);
......@@ -340,7 +341,7 @@ namespace XSLT
m_transformer->error(msg);
}
closeOutput();
delete(oh);
oh.reset();
xsltFreeStylesheet(styleSheet);
xsltFreeTransformContext(tcontext);
xmlFreeDoc(doc);
......
......@@ -41,6 +41,7 @@
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <OleHandler.hxx>
#include <boost/scoped_ptr.hpp>
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
......@@ -128,12 +129,12 @@ namespace XSLT
}
// Decompress the bytes
::ZipUtils::Inflater* decompresser = new ::ZipUtils::Inflater(false);
boost::scoped_ptr< ::ZipUtils::Inflater> decompresser(new ::ZipUtils::Inflater(false));
decompresser->setInput(content);
Sequence<sal_Int8> result(oleLength);
decompresser->doInflateSegment(result, 0, oleLength);
decompresser->end();
delete decompresser;
decompresser.reset();
//return the base64 string of the uncompressed data
OUStringBuffer buf(oleLength);
::sax::Converter::encodeBase64(buf, result);
......@@ -196,11 +197,11 @@ namespace XSLT
// Compress the bytes
Sequence<sal_Int8> output(oledata.getLength());
::ZipUtils::Deflater* compresser = new ::ZipUtils::Deflater((sal_Int32) 3, false);
boost::scoped_ptr< ::ZipUtils::Deflater> compresser(new ::ZipUtils::Deflater((sal_Int32) 3, false));
compresser->setInputSegment(oledata, 0, oledata.getLength());
compresser->finish();
int compressedDataLength = compresser->doDeflateSegment(output, 0, oledata.getLength());
delete(compresser);
compresser.reset();
//realloc the data length
Sequence<sal_Int8> compressed(compressedDataLength);
for (int i = 0; i < compressedDataLength; i++) {
......
......@@ -20,7 +20,7 @@
#include "EventThread.hxx"
#include <comphelper/guarding.hxx>
#include <tools/debug.hxx>
#include <boost/scoped_ptr.hpp>
namespace frm
{
......@@ -176,7 +176,7 @@ void OComponentEventThread::run()
::cppu::OComponentHelper *pCompImpl = m_pCompImpl;
ThreadEvents::iterator firstEvent( m_aEvents.begin() );
EventObject* pEvt = *firstEvent;
boost::scoped_ptr<EventObject> pEvt(*firstEvent);
m_aEvents.erase( firstEvent );
ThreadObjects::iterator firstControl( m_aControls.begin() );
......@@ -196,10 +196,8 @@ void OComponentEventThread::run()
query_interface(xControlAdapter->queryAdapted(), xControl);
if( xComp.is() )
processEvent( pCompImpl, pEvt, xControl, bFlag );
processEvent( pCompImpl, pEvt.get(), xControl, bFlag );
}
delete pEvt;
};
// After a Dispose, we do not know the Control anymore.
......
......@@ -35,7 +35,7 @@
#include <algorithm>
#include <functional>
#include <boost/scoped_ptr.hpp>
namespace frm
{
......@@ -85,14 +85,13 @@ namespace frm
RichTextEngine* pClone( NULL );
{
SolarMutexGuard aGuard;
EditTextObject* pMyText = CreateTextObject();
boost::scoped_ptr<EditTextObject> pMyText(CreateTextObject());
OSL_ENSURE( pMyText, "RichTextEngine::Clone: CreateTextObject returned nonsense!" );
pClone = Create();
if ( pMyText )
pClone->SetText( *pMyText );
delete pMyText;
}
return pClone;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment