filter/source/msfilter/msdffimp.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)
New commits: commit 81a608e930c29f6210524df939c7a1d8b1093069 Author: Mark Wielaard <m...@klomp.org> Date: Sun Jul 7 22:20:50 2013 +0200 Fix memory leak in SvxMSDffManager::CheckForConvertToSOObj. Use boost::scoped_ptr for temporary SvMemoryStream. Change-Id: I6235d7868bd20963aa5fdda32b1dd3b82cf0b182 Reviewed-on: https://gerrit.libreoffice.org/4760 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index e6d8d1e..58f455c 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -136,6 +136,7 @@ #include <rtl/strbuf.hxx> #include <rtl/ustring.hxx> #include <boost/scoped_array.hpp> +#include <boost/scoped_ptr.hpp> using namespace ::com::sun::star ; using namespace ::com::sun::star::drawing; @@ -6838,17 +6839,17 @@ com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > SvxMS { //TODO/MBA: check if (and when) storage and stream will be destroyed! const SfxFilter* pFilter = 0; - SvMemoryStream* pStream = new SvMemoryStream; + ::boost::scoped_ptr<SvMemoryStream> xMemStream (new SvMemoryStream); if ( pName ) { // TODO/LATER: perhaps we need to retrieve VisArea and Metafile from the storage also SotStorageStreamRef xStr = rSrcStg.OpenSotStream( OUString( "package_stream" ), STREAM_STD_READ ); - *xStr >> *pStream; + *xStr >> *xMemStream; } else { SfxFilterMatcher aMatch( sStarName ); - SotStorageRef xStorage = new SotStorage( sal_False, *pStream ); + SotStorageRef xStorage = new SotStorage( sal_False, *xMemStream ); rSrcStg.CopyTo( xStorage ); xStorage->Commit(); xStorage.Clear(); @@ -6864,8 +6865,8 @@ com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > SvxMS aTmpName += OUString::number(nOleCount++); aTmpName += ".bin"; SvFileStream aTmpStream(aTmpName,STREAM_READ|STREAM_WRITE|STREAM_TRUNC); - pStream->Seek(0); - *pStream >> aTmpStream; + xMemStream->Seek(0); + *xMemStream >> aTmpStream; aTmpStream.Close(); #endif if ( pName || pFilter ) @@ -6882,7 +6883,7 @@ com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > SvxMS uno::Sequence < beans::PropertyValue > aMedium( aFilterName.isEmpty() ? 2 : 3); aMedium[0].Name = OUString( "InputStream" ); - uno::Reference < io::XInputStream > xStream = new ::utl::OSeekableInputStreamWrapper( *pStream ); + uno::Reference < io::XInputStream > xStream = new ::utl::OSeekableInputStreamWrapper( *xMemStream ); aMedium[0].Value <<= xStream; aMedium[1].Name = OUString( "URL" ); aMedium[1].Value <<= OUString( "private:stream" );
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits