summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-07-09 17:10:49 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-07-10 08:30:21 +0200
commit65e41592a650887c8d00586385119effa54de5fa (patch)
tree4b0f6c7f52159d9cf70c561c815f623d3b57198d
parentuse std::uniqueptr in HandledTextToken (diff)
downloadcore-65e41592a650887c8d00586385119effa54de5fa.tar.gz
core-65e41592a650887c8d00586385119effa54de5fa.zip
pass SvStream around by std::unique_ptr
and give utl::OStreamWrapper a new constructor so that it knows it is taking ownership of the SvStream, which appears to fix several leaks Change-Id: Idcbcca9b81a4f0345fd8b8c8a2f4e84213686a6b Reviewed-on: https://gerrit.libreoffice.org/57187 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--cui/source/dialogs/hldocntp.cxx4
-rw-r--r--dbaccess/source/filter/hsqldb/rowinputbinary.cxx2
-rw-r--r--desktop/source/migration/services/wordbookmigration.cxx3
-rw-r--r--filter/source/svg/svgexport.cxx2
-rw-r--r--filter/source/textfilterdetect/filterdetect.cxx4
-rw-r--r--forms/source/component/DatabaseForm.cxx9
-rw-r--r--forms/source/component/ImageControl.cxx2
-rw-r--r--forms/source/component/imgprod.cxx4
-rw-r--r--forms/source/richtext/richtextvclcontrol.cxx3
-rw-r--r--framework/source/fwe/classes/addonsoptions.cxx4
-rw-r--r--include/svtools/embedhlp.hxx2
-rw-r--r--include/unotools/streamwrap.hxx3
-rw-r--r--include/unotools/ucbstreamhelper.hxx15
-rw-r--r--include/vcl/graphicfilter.hxx2
-rw-r--r--sax/qa/cppunit/xmlimport.cxx4
-rw-r--r--sc/source/filter/excel/xeescher.cxx2
-rw-r--r--sc/source/filter/xcl97/xcl97esc.cxx2
-rw-r--r--sc/source/ui/app/drwtrans.cxx4
-rw-r--r--sc/source/ui/app/transobj.cxx4
-rw-r--r--sc/source/ui/unoobj/filtuno.cxx4
-rw-r--r--sd/source/core/CustomAnimationPreset.cxx4
-rw-r--r--sd/source/filter/eppt/pptexsoundcollection.cxx3
-rw-r--r--sd/source/filter/html/htmlex.cxx6
-rw-r--r--sd/source/filter/html/pubdlg.cxx4
-rw-r--r--sd/source/filter/ppt/pptin.cxx4
-rw-r--r--sd/source/ui/app/sdmod.cxx4
-rw-r--r--sd/source/ui/app/sdxfer.cxx4
-rw-r--r--sd/source/ui/dlg/PhotoAlbumDialog.cxx3
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx3
-rw-r--r--sfx2/source/doc/docfile.cxx28
-rw-r--r--sfx2/source/doc/graphhelp.cxx4
-rw-r--r--sfx2/source/view/classificationhelper.cxx4
-rw-r--r--sot/source/sdstor/storage.cxx8
-rw-r--r--sot/source/sdstor/ucbstorage.cxx15
-rw-r--r--sot/source/unoolestorage/xolesimplestorage.cxx6
-rw-r--r--sot/source/unoolestorage/xolesimplestorage.hxx2
-rw-r--r--svl/source/fsstor/fsstorage.cxx12
-rw-r--r--svtools/source/misc/embedhlp.cxx7
-rw-r--r--svtools/source/misc/embedtransfer.cxx2
-rw-r--r--svtools/source/misc/templatefoldercache.cxx4
-rw-r--r--svx/source/xml/xmlgrhlp.cxx8
-rw-r--r--sw/qa/extras/inc/swmodeltestbase.hxx4
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport10.cxx4
-rw-r--r--sw/source/core/swg/SwXMLTextBlocks.cxx5
-rw-r--r--sw/source/filter/ww8/rtfexportfilter.cxx5
-rw-r--r--sw/source/filter/ww8/wrtww8.cxx4
-rw-r--r--sw/source/filter/ww8/wrtww8gr.cxx4
-rw-r--r--sw/source/filter/xml/swxml.cxx3
-rw-r--r--sw/source/filter/xml/wrtxml.cxx4
-rw-r--r--sw/source/uibase/uno/SwXFilterOptions.cxx2
-rw-r--r--unotools/source/streaming/streamwrap.cxx11
-rw-r--r--unotools/source/ucbhelper/ucbstreamhelper.cxx34
-rw-r--r--vcl/source/filter/graphicfilter.cxx24
-rw-r--r--vcl/source/filter/graphicfilter2.cxx2
-rw-r--r--vcl/source/gdi/impgraph.cxx4
-rw-r--r--vcl/source/graphic/GraphicLoader.cxx4
-rw-r--r--vcl/source/graphic/UnoGraphicProvider.cxx17
-rw-r--r--writerfilter/source/filter/RtfFilter.cxx4
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx2
-rw-r--r--writerperfect/source/common/WPXSvInputStream.cxx6
-rw-r--r--xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx12
61 files changed, 176 insertions, 193 deletions
diff --git a/cui/source/dialogs/hldocntp.cxx b/cui/source/dialogs/hldocntp.cxx
index 962298168b49..96a2fcac3ed8 100644
--- a/cui/source/dialogs/hldocntp.cxx
+++ b/cui/source/dialogs/hldocntp.cxx
@@ -390,11 +390,11 @@ void SvxHyperlinkNewDocTp::DoApply ()
try
{
// check if file exists, warn before we overwrite it
- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
+ std::unique_ptr<SvStream> pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
bool bOk = pIStm && ( pIStm->GetError() == ERRCODE_NONE);
- delete pIStm;
+ pIStm.reset();
if( bOk )
{
diff --git a/dbaccess/source/filter/hsqldb/rowinputbinary.cxx b/dbaccess/source/filter/hsqldb/rowinputbinary.cxx
index d40d5332851e..9b6df5d61a70 100644
--- a/dbaccess/source/filter/hsqldb/rowinputbinary.cxx
+++ b/dbaccess/source/filter/hsqldb/rowinputbinary.cxx
@@ -140,7 +140,7 @@ HsqlRowInputStream::HsqlRowInputStream() {}
void HsqlRowInputStream::setInputStream(Reference<XInputStream> const& rStream)
{
- m_pStream.reset(utl::UcbStreamHelper::CreateStream(rStream, true));
+ m_pStream = utl::UcbStreamHelper::CreateStream(rStream, true);
m_pStream->SetEndian(SvStreamEndian::BIG);
}
diff --git a/desktop/source/migration/services/wordbookmigration.cxx b/desktop/source/migration/services/wordbookmigration.cxx
index 3a0f4bd1c165..683813a9df48 100644
--- a/desktop/source/migration/services/wordbookmigration.cxx
+++ b/desktop/source/migration/services/wordbookmigration.cxx
@@ -107,7 +107,7 @@ namespace migration
bool IsUserWordbook( const OUString& rFile )
{
bool bRet = false;
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( rFile, StreamMode::STD_READ );
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( rFile, StreamMode::STD_READ );
if ( pStream && !pStream->GetError() )
{
static const sal_Char* const pVerOOo7 = "OOoUserDict1";
@@ -137,7 +137,6 @@ bool IsUserWordbook( const OUString& rFile )
}
}
- delete pStream;
return bRet;
}
diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx
index d4db26ef8e52..91a1d35c3bb4 100644
--- a/filter/source/svg/svgexport.cxx
+++ b/filter/source/svg/svgexport.cxx
@@ -517,7 +517,7 @@ bool SVGFilter::implExport( const Sequence< PropertyValue >& rDescriptor )
OUString aFileName;
pValue[ i ].Value >>= aFileName;
- pOStm.reset(::utl::UcbStreamHelper::CreateStream( aFileName, StreamMode::WRITE | StreamMode::TRUNC ));
+ pOStm = ::utl::UcbStreamHelper::CreateStream( aFileName, StreamMode::WRITE | StreamMode::TRUNC );
if( pOStm )
xOStm.set( new ::utl::OOutputStreamWrapper ( *pOStm ) );
diff --git a/filter/source/textfilterdetect/filterdetect.cxx b/filter/source/textfilterdetect/filterdetect.cxx
index 2e3e08028683..3eeb0b1ee485 100644
--- a/filter/source/textfilterdetect/filterdetect.cxx
+++ b/filter/source/textfilterdetect/filterdetect.cxx
@@ -165,9 +165,9 @@ OUString SAL_CALL PlainTextFilterDetect::detect(uno::Sequence<beans::PropertyVal
ZCodec aCodecGZ;
std::unique_ptr<SvStream> pInStream;
if (xStream.is())
- pInStream.reset(utl::UcbStreamHelper::CreateStream(xStream));
+ pInStream = utl::UcbStreamHelper::CreateStream(xStream);
else
- pInStream.reset(utl::UcbStreamHelper::CreateStream(xInStream));
+ pInStream = utl::UcbStreamHelper::CreateStream(xInStream);
std::unique_ptr<SvMemoryStream> pDecompressedStream(new SvMemoryStream());
if (aCodecGZ.AttemptDecompression(*pInStream, *pDecompressedStream))
{
diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
index 4d7cc390171a..0808b029edf7 100644
--- a/forms/source/component/DatabaseForm.cxx
+++ b/forms/source/component/DatabaseForm.cxx
@@ -963,7 +963,7 @@ bool ODatabaseForm::InsertFilePart( INetMIMEMessage& rParent, const OUString& rN
{
OUString aFileName(rFileName);
OUString aContentType(CONTENT_TYPE_STR_TEXT_PLAIN);
- SvStream *pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
if (!aFileName.isEmpty())
{
@@ -977,8 +977,7 @@ bool ODatabaseForm::InsertFilePart( INetMIMEMessage& rParent, const OUString& rN
pStream = ::utl::UcbStreamHelper::CreateStream(aFileName, StreamMode::READ);
if (!pStream || (pStream->GetError() != ERRCODE_NONE))
{
- delete pStream;
- pStream = nullptr;
+ pStream.reset();
}
sal_Int32 nSepInd = aFileName.lastIndexOf('.');
OUString aExtension = aFileName.copy( nSepInd + 1 );
@@ -990,7 +989,7 @@ bool ODatabaseForm::InsertFilePart( INetMIMEMessage& rParent, const OUString& rN
// If something didn't work, we create an empty MemoryStream
if( !pStream )
- pStream = new SvMemoryStream;
+ pStream.reset( new SvMemoryStream );
// Create part as MessageChild
@@ -1013,7 +1012,7 @@ bool ODatabaseForm::InsertFilePart( INetMIMEMessage& rParent, const OUString& rN
// Body
- pChild->SetDocumentLB( new SvLockBytes(pStream, true) );
+ pChild->SetDocumentLB( new SvLockBytes(pStream.release(), true) );
rParent.AttachChild( std::move(pChild) );
return true;
diff --git a/forms/source/component/ImageControl.cxx b/forms/source/component/ImageControl.cxx
index b75b08270334..0db96134a902 100644
--- a/forms/source/component/ImageControl.cxx
+++ b/forms/source/component/ImageControl.cxx
@@ -400,7 +400,7 @@ bool OImageControlModel::impl_updateStreamForURL_lck( const OUString& _rURL, Val
}
else
{
- pImageStream.reset( ::utl::UcbStreamHelper::CreateStream( _rURL, StreamMode::READ ) );
+ pImageStream = ::utl::UcbStreamHelper::CreateStream( _rURL, StreamMode::READ );
bool bSetNull = ( pImageStream.get() == nullptr ) || ( ERRCODE_NONE != pImageStream->GetErrorCode() );
if ( !bSetNull )
diff --git a/forms/source/component/imgprod.cxx b/forms/source/component/imgprod.cxx
index 0b55ecd942f1..9e2700f0b971 100644
--- a/forms/source/component/imgprod.cxx
+++ b/forms/source/component/imgprod.cxx
@@ -209,9 +209,9 @@ void ImageProducer::SetImage( const OUString& rPath )
}
else if( !maURL.isEmpty() )
{
- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( maURL, StreamMode::STD_READ );
+ std::unique_ptr<SvStream> pIStm = ::utl::UcbStreamHelper::CreateStream( maURL, StreamMode::STD_READ );
if (pIStm)
- mpStm.reset( new SvStream( new ImgProdLockBytes( pIStm, true ) ) );
+ mpStm.reset( new SvStream( new ImgProdLockBytes( pIStm.release(), true ) ) );
}
}
diff --git a/forms/source/richtext/richtextvclcontrol.cxx b/forms/source/richtext/richtextvclcontrol.cxx
index fd466cf25b2c..e5f0848eebf4 100644
--- a/forms/source/richtext/richtextvclcontrol.cxx
+++ b/forms/source/richtext/richtextvclcontrol.cxx
@@ -246,7 +246,7 @@ namespace frm
if ( nResult == ERRCODE_NONE )
{
OUString sFileName = aFP.GetPath();
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream(
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream(
sFileName, ( bLoad ? StreamMode::READ : StreamMode::WRITE | StreamMode::TRUNC ) | StreamMode::SHARE_DENYALL
);
if ( pStream )
@@ -272,7 +272,6 @@ namespace frm
getEngine().Write( *pStream, eFormat );
}
}
- DELETEZ( pStream );
}
return true; // handled
}
diff --git a/framework/source/fwe/classes/addonsoptions.cxx b/framework/source/fwe/classes/addonsoptions.cxx
index 8c45c86157ea..136cc7c26984 100644
--- a/framework/source/fwe/classes/addonsoptions.cxx
+++ b/framework/source/fwe/classes/addonsoptions.cxx
@@ -1277,7 +1277,7 @@ Image AddonsOptions_Impl::ReadImageFromURL(const OUString& aImageURL)
{
Image aImage;
- SvStream* pStream = UcbStreamHelper::CreateStream( aImageURL, StreamMode::STD_READ );
+ std::unique_ptr<SvStream> pStream = UcbStreamHelper::CreateStream( aImageURL, StreamMode::STD_READ );
if ( pStream && ( pStream->GetErrorCode() == ERRCODE_NONE ))
{
// Use graphic class to also support more graphic formats (bmp,png,...)
@@ -1299,8 +1299,6 @@ Image AddonsOptions_Impl::ReadImageFromURL(const OUString& aImageURL)
}
}
- delete pStream;
-
return aImage;
}
diff --git a/include/svtools/embedhlp.hxx b/include/svtools/embedhlp.hxx
index 30a5cdc6338e..27e3e89eb590 100644
--- a/include/svtools/embedhlp.hxx
+++ b/include/svtools/embedhlp.hxx
@@ -48,7 +48,7 @@ class SVT_DLLPUBLIC EmbeddedObjectRef
{
std::unique_ptr<EmbeddedObjectRef_Impl> mpImpl;
- SVT_DLLPRIVATE SvStream* GetGraphicStream( bool bUpdate ) const;
+ SVT_DLLPRIVATE std::unique_ptr<SvStream> GetGraphicStream( bool bUpdate ) const;
SVT_DLLPRIVATE void GetReplacement( bool bUpdate );
EmbeddedObjectRef& operator = ( const EmbeddedObjectRef& ) = delete;
diff --git a/include/unotools/streamwrap.hxx b/include/unotools/streamwrap.hxx
index 81f463ea6e2c..299b6dfd081f 100644
--- a/include/unotools/streamwrap.hxx
+++ b/include/unotools/streamwrap.hxx
@@ -29,6 +29,7 @@
#include <com/sun/star/io/XStream.hpp>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/implbase1.hxx>
+#include <memory>
class SvStream;
@@ -53,6 +54,7 @@ protected:
public:
OInputStreamWrapper(SvStream& _rStream);
OInputStreamWrapper(SvStream* pStream, bool bOwner=false);
+ OInputStreamWrapper(std::unique_ptr<SvStream> pStream);
virtual ~OInputStreamWrapper() override;
// css::io::XInputStream
@@ -152,6 +154,7 @@ protected:
public:
OStreamWrapper(SvStream& _rStream);
+ OStreamWrapper(std::unique_ptr<SvStream> _rStream);
// css::io::XStream
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getInputStream( ) override;
diff --git a/include/unotools/ucbstreamhelper.hxx b/include/unotools/ucbstreamhelper.hxx
index 68309d094acf..f037571fe212 100644
--- a/include/unotools/ucbstreamhelper.hxx
+++ b/include/unotools/ucbstreamhelper.hxx
@@ -25,6 +25,7 @@
#include <unotools/unotoolsdllapi.h>
#include <tools/stream.hxx>
+#include <memory>
namespace com
{
@@ -52,13 +53,13 @@ namespace utl
class UNOTOOLS_DLLPUBLIC UcbStreamHelper
{
public:
- static SvStream* CreateStream( const OUString& rFileName, StreamMode eOpenMode );
- static SvStream* CreateStream( const OUString& rFileName, StreamMode eOpenMode,
- bool bFileExists );
- static SvStream* CreateStream( const css::uno::Reference < css::io::XInputStream >& xStream );
- static SvStream* CreateStream( const css::uno::Reference < css::io::XStream >& xStream );
- static SvStream* CreateStream( const css::uno::Reference < css::io::XInputStream >& xStream, bool bCloseStream );
- static SvStream* CreateStream( const css::uno::Reference < css::io::XStream >& xStream, bool bCloseStream );
+ static std::unique_ptr<SvStream> CreateStream( const OUString& rFileName, StreamMode eOpenMode );
+ static std::unique_ptr<SvStream> CreateStream( const OUString& rFileName, StreamMode eOpenMode,
+ bool bFileExists );
+ static std::unique_ptr<SvStream> CreateStream( const css::uno::Reference < css::io::XInputStream >& xStream );
+ static std::unique_ptr<SvStream> CreateStream( const css::uno::Reference < css::io::XStream >& xStream );
+ static std::unique_ptr<SvStream> CreateStream( const css::uno::Reference < css::io::XInputStream >& xStream, bool bCloseStream );
+ static std::unique_ptr<SvStream> CreateStream( const css::uno::Reference < css::io::XStream >& xStream, bool bCloseStream );
};
}
diff --git a/include/vcl/graphicfilter.hxx b/include/vcl/graphicfilter.hxx
index 2f24cf10e085..8c5ce93221f2 100644
--- a/include/vcl/graphicfilter.hxx
+++ b/include/vcl/graphicfilter.hxx
@@ -285,7 +285,7 @@ public:
/// Imports multiple graphics.
///
/// The resulting graphic is added to rGraphics on success, nullptr is added on failure.
- void ImportGraphics(std::vector< std::shared_ptr<Graphic> >& rGraphics, const std::vector< std::shared_ptr<SvStream> >& rStreams);
+ void ImportGraphics(std::vector< std::shared_ptr<Graphic> >& rGraphics, std::vector< std::unique_ptr<SvStream> > vStreams);
ErrCode ImportGraphic( Graphic& rGraphic, const OUString& rPath,
SvStream& rStream,
diff --git a/sax/qa/cppunit/xmlimport.cxx b/sax/qa/cppunit/xmlimport.cxx
index f7ea3ec92c19..b22f9d268e8a 100644
--- a/sax/qa/cppunit/xmlimport.cxx
+++ b/sax/qa/cppunit/xmlimport.cxx
@@ -65,10 +65,10 @@ Reference< XInputStream > createStreamFromFile (
Reference< XInputStream > xInputStream;
OUString aInStr;
FileBase::getFileURLFromSystemPath(filePath, aInStr);
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(aInStr, StreamMode::READ);
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(aInStr, StreamMode::READ);
if(pStream == nullptr)
CPPUNIT_ASSERT(false);
- Reference< XStream > xStream(new utl::OStreamWrapper(*pStream));
+ Reference< XStream > xStream(new utl::OStreamWrapper(std::move(pStream)));
xInputStream.set(xStream, UNO_QUERY);
return xInputStream;
}
diff --git a/sc/source/filter/excel/xeescher.cxx b/sc/source/filter/excel/xeescher.cxx
index 971eb25998f6..855f28cd0433 100644
--- a/sc/source/filter/excel/xeescher.cxx
+++ b/sc/source/filter/excel/xeescher.cxx
@@ -1575,7 +1575,7 @@ void XclExpObjectManager::InitStream( bool bTempFile )
if( mxTempFile->IsValid() )
{
mxTempFile->EnableKillingFile();
- mxDffStrm.reset( ::utl::UcbStreamHelper::CreateStream( mxTempFile->GetURL(), StreamMode::STD_READWRITE ) );
+ mxDffStrm = ::utl::UcbStreamHelper::CreateStream( mxTempFile->GetURL(), StreamMode::STD_READWRITE );
}
}
diff --git a/sc/source/filter/xcl97/xcl97esc.cxx b/sc/source/filter/xcl97/xcl97esc.cxx
index b5030ce78304..d81846249a90 100644
--- a/sc/source/filter/xcl97/xcl97esc.cxx
+++ b/sc/source/filter/xcl97/xcl97esc.cxx
@@ -85,7 +85,7 @@ SvStream* XclEscherExGlobal::ImplQueryPictureStream()
if( mxPicTempFile->IsValid() )
{
mxPicTempFile->EnableKillingFile();
- mxPicStrm.reset( ::utl::UcbStreamHelper::CreateStream( mxPicTempFile->GetURL(), StreamMode::STD_READWRITE ) );
+ mxPicStrm = ::utl::UcbStreamHelper::CreateStream( mxPicTempFile->GetURL(), StreamMode::STD_READWRITE );
mxPicStrm->SetEndian( SvStreamEndian::LITTLE );
}
return mxPicStrm.get();
diff --git a/sc/source/ui/app/drwtrans.cxx b/sc/source/ui/app/drwtrans.cxx
index 5b74ca09ee8d..7f60ebcd3ad8 100644
--- a/sc/source/ui/app/drwtrans.cxx
+++ b/sc/source/ui/app/drwtrans.cxx
@@ -565,12 +565,12 @@ bool ScDrawTransferObj::WriteObject( tools::SvRef<SotStorageStream>& rxOStm, voi
if ( xTransact.is() )
xTransact->commit();
- SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), StreamMode::READ );
+ std::unique_ptr<SvStream> pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), StreamMode::READ );
if( pSrcStm )
{
rxOStm->SetBufferSize( 0xff00 );
rxOStm->WriteStream( *pSrcStm );
- delete pSrcStm;
+ pSrcStm.reset();
}
xWorkStore->dispose();
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index af6a63f522ef..8fcfde1baab1 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -496,12 +496,12 @@ bool ScTransferObj::WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void* p
if ( xTransact.is() )
xTransact->commit();
- SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), StreamMode::READ );
+ std::unique_ptr<SvStream> pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), StreamMode::READ );
if( pSrcStm )
{
rxOStm->SetBufferSize( 0xff00 );
rxOStm->WriteStream( *pSrcStm );
- delete pSrcStm;
+ pSrcStm.reset();
}
bRet = true;
diff --git a/sc/source/ui/unoobj/filtuno.cxx b/sc/source/ui/unoobj/filtuno.cxx
index d15425eb92ad..4d2697563dd5 100644
--- a/sc/source/ui/unoobj/filtuno.cxx
+++ b/sc/source/ui/unoobj/filtuno.cxx
@@ -188,7 +188,7 @@ sal_Int16 SAL_CALL ScFilterOptionsObj::execute()
OUString aPrivDatName(aURL.getName());
std::unique_ptr<SvStream> pInStream;
if ( xInputStream.is() )
- pInStream.reset(utl::UcbStreamHelper::CreateStream( xInputStream ));
+ pInStream = utl::UcbStreamHelper::CreateStream( xInputStream );
ScopedVclPtr<AbstractScImportAsciiDlg> pDlg(pFact->CreateScImportAsciiDlg(nullptr, aPrivDatName, pInStream.get(), SC_IMPORTFILE));
if ( pDlg->Execute() == RET_OK )
@@ -272,7 +272,7 @@ sal_Int16 SAL_CALL ScFilterOptionsObj::execute()
std::unique_ptr<SvStream> pInStream;
if ( xInputStream.is() )
- pInStream.reset(utl::UcbStreamHelper::CreateStream( xInputStream ));
+ pInStream = utl::UcbStreamHelper::CreateStream( xInputStream );
switch(load_CharSet( eEncoding, bExport, pInStream.get()))
{
case charsetSource::charset_from_file:
diff --git a/sd/source/core/CustomAnimationPreset.cxx b/sd/source/core/CustomAnimationPreset.cxx
index e420c5885800..9eac96516f82 100644
--- a/sd/source/core/CustomAnimationPreset.cxx
+++ b/sd/source/core/CustomAnimationPreset.cxx
@@ -244,8 +244,8 @@ Reference< XAnimationNode > implImportEffects( const Reference< XMultiServiceFac
try
{
// create stream
- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( rPath, StreamMode::READ );
- Reference<XInputStream> xInputStream( new utl::OInputStreamWrapper( pIStm, true ) );
+ std::unique_ptr<SvStream> pIStm = ::utl::UcbStreamHelper::CreateStream( rPath, StreamMode::READ );
+ Reference<XInputStream> xInputStream( new utl::OInputStreamWrapper( std::move(pIStm) ) );
// prepare ParserInputSrouce
xml::sax::InputSource aParserInput;
diff --git a/sd/source/filter/eppt/pptexsoundcollection.cxx b/sd/source/filter/eppt/pptexsoundcollection.cxx
index 287853b05c51..8a3330237fa0 100644
--- a/sd/source/filter/eppt/pptexsoundcollection.cxx
+++ b/sd/source/filter/eppt/pptexsoundcollection.cxx
@@ -127,7 +127,7 @@ void ExSoundEntry::Write( SvStream& rSt, sal_uInt32 nId ) const
rSt.WriteUInt32( EPP_SoundData << 16 ).WriteUInt32( nFileSize );
sal_uInt32 nBytesLeft = nFileSize;
- SvStream* pSourceFile = ::utl::UcbStreamHelper::CreateStream( aSoundURL, StreamMode::READ );
+ std::unique_ptr<SvStream> pSourceFile = ::utl::UcbStreamHelper::CreateStream( aSoundURL, StreamMode::READ );
if ( pSourceFile )
{
std::unique_ptr<sal_uInt8[]> pBuf( new sal_uInt8[ 0x10000 ] ); // 64 kB Buffer
@@ -138,7 +138,6 @@ void ExSoundEntry::Write( SvStream& rSt, sal_uInt32 nId ) const
rSt.WriteBytes(pBuf.get(), nToDo);
nBytesLeft -= nToDo;
}
- delete pSourceFile;
}
}
catch( css::uno::Exception& )
diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx
index 0e47c46add57..b0a6dd8c2e04 100644
--- a/sd/source/filter/html/htmlex.cxx
+++ b/sd/source/filter/html/htmlex.cxx
@@ -2866,7 +2866,7 @@ bool HtmlExport::CopyScript( const OUString& rPath, const OUString& rSource, con
meEC.SetContext( STR_HTMLEXP_ERROR_OPEN_FILE, rSource );
ErrCode nErr = ERRCODE_NONE;
- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
+ std::unique_ptr<SvStream> pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
if( pIStm )
{
@@ -2886,7 +2886,7 @@ bool HtmlExport::CopyScript( const OUString& rPath, const OUString& rSource, con
}
nErr = pIStm->GetError();
- delete pIStm;
+ pIStm.reset();
}
if( nErr != ERRCODE_NONE )
@@ -3141,7 +3141,7 @@ ErrCode EasyFile::createStream( const OUString& rUrl, SvStream* &rpStr )
createFileName( rUrl, aFileName );
ErrCode nErr = ERRCODE_NONE;
- pOStm.reset( ::utl::UcbStreamHelper::CreateStream( aFileName, StreamMode::WRITE | StreamMode::TRUNC ) );
+ pOStm = ::utl::UcbStreamHelper::CreateStream( aFileName, StreamMode::WRITE | StreamMode::TRUNC );
if( pOStm )
{
bOpen = true;
diff --git a/sd/source/filter/html/pubdlg.cxx b/sd/source/filter/html/pubdlg.cxx
index 538eb71e57bd..79df8be785cf 100644
--- a/sd/source/filter/html/pubdlg.cxx
+++ b/sd/source/filter/html/pubdlg.cxx
@@ -1514,12 +1514,10 @@ void SdPublishingDlg::Load()
// check if file exists, SfxMedium shows an errorbox else
{
- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
+ std::unique_ptr<SvStream> pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ );
bool bOk = pIStm && ( pIStm->GetError() == ERRCODE_NONE);
- delete pIStm;
-
if( !bOk )
return;
}
diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx
index ab97f71ce73d..364c07662181 100644
--- a/sd/source/filter/ppt/pptin.cxx
+++ b/sd/source/filter/ppt/pptin.cxx
@@ -1961,7 +1961,7 @@ OUString ImplSdPPTImport::ReadSound(sal_uInt32 nSoundRef) const
std::vector<sal_uInt8> aBuf(nSoundDataLen);
rStCtrl.ReadBytes(aBuf.data(), nSoundDataLen);
- SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aGalleryUserSound.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::WRITE | StreamMode::TRUNC );
+ std::unique_ptr<SvStream> pOStm = ::utl::UcbStreamHelper::CreateStream( aGalleryUserSound.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::WRITE | StreamMode::TRUNC );
if( pOStm )
{
@@ -1972,8 +1972,6 @@ OUString ImplSdPPTImport::ReadSound(sal_uInt32 nSoundRef) const
GalleryExplorer::InsertURL( GALLERY_THEME_USERSOUNDS, aGalleryUserSound.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
aRetval = aGalleryUserSound.GetMainURL( INetURLObject::DecodeMechanism::NONE );
}
-
- delete pOStm;
}
}
}
diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
index c519302a8fa5..b55213c44ed2 100644
--- a/sd/source/ui/app/sdmod.cxx
+++ b/sd/source/ui/app/sdmod.cxx
@@ -183,10 +183,10 @@ tools::SvRef<SotStorageStream> SdModule::GetOptionStream( const OUString& rOptio
aURL.Append( "drawing.cfg" );
- SvStream* pStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READWRITE );
+ std::unique_ptr<SvStream> pStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READWRITE );
if( pStm )
- xOptionStorage = new SotStorage( pStm, true );
+ xOptionStorage = new SotStorage( pStm.release(), true );
}
OUString aStmName;
diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx
index a8118228cc9e..7523b53af472 100644
--- a/sd/source/ui/app/sdxfer.cxx
+++ b/sd/source/ui/app/sdxfer.cxx
@@ -640,12 +640,12 @@ bool SdTransferable::WriteObject( tools::SvRef<SotStorageStream>& rxOStm, void*
if ( xTransact.is() )
xTransact->commit();
- SvStream* pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), StreamMode::READ );
+ std::unique_ptr<SvStream> pSrcStm = ::utl::UcbStreamHelper::CreateStream( aTempFile.GetURL(), StreamMode::READ );
if( pSrcStm )
{
rxOStm->SetBufferSize( 0xff00 );
rxOStm->WriteStream( *pSrcStm );
- delete pSrcStm;
+ pSrcStm.reset();
}
bRet = true;
diff --git a/sd/source/ui/dlg/PhotoAlbumDialog.cxx b/sd/source/ui/dlg/PhotoAlbumDialog.cxx
index bd14bce7f6fe..1f728df73aa8 100644
--- a/sd/source/ui/dlg/PhotoAlbumDialog.cxx
+++ b/sd/source/ui/dlg/PhotoAlbumDialog.cxx
@@ -610,13 +610,12 @@ IMPL_LINK_NOARG(SdPhotoAlbumDialog, SelectHdl, weld::TreeView&, void)
// remote?
if ( INetProtocol::File != aURLObj.GetProtocol() )
{
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( sImgUrl, StreamMode::READ );
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( sImgUrl, StreamMode::READ );
if( pStream )
m_pGraphicFilter->ImportGraphic( aGraphic, sImgUrl, *pStream, nFilter, nullptr, nFilterImportFlags );
else
m_pGraphicFilter->ImportGraphic( aGraphic, aURLObj, nFilter, nullptr, nFilterImportFlags );
- delete pStream;
}
else
{
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index 5d20a0f5b0c8..040dd203dbb8 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -765,13 +765,12 @@ ErrCode FileDialogHelper_Impl::getGraphic( const OUString& rURL,
// non-local?
if ( INetProtocol::File != aURLObj.GetProtocol() )
{
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( rURL, StreamMode::READ );
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( rURL, StreamMode::READ );
if( pStream )
nRet = mpGraphicFilter->ImportGraphic( rGraphic, rURL, *pStream, nFilter, nullptr, nFilterImportFlags );
else
nRet = mpGraphicFilter->ImportGraphic( rGraphic, aURLObj, nFilter, nullptr, nFilterImportFlags );
- delete pStream;
}
else
{
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index d6ea0e8f6c54..56a976572e25 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -260,8 +260,8 @@ public:
std::shared_ptr<const SfxFilter> m_pFilter;
std::shared_ptr<const SfxFilter> m_pCustomFilter;
- SvStream* m_pInStream;
- SvStream* m_pOutStream;
+ std::unique_ptr<SvStream> m_pInStream;
+ std::unique_ptr<SvStream> m_pOutStream;
std::shared_ptr<const SfxFilter> pOrigFilter;
OUString aOrigURL;
@@ -536,11 +536,11 @@ bool SfxMedium::IsSkipImages()
SvStream* SfxMedium::GetInStream()
{
if ( pImpl->m_pInStream )
- return pImpl->m_pInStream;
+ return pImpl->m_pInStream.get();
if ( pImpl->pTempFile )
{
- pImpl->m_pInStream = new SvFileStream(pImpl->m_aName, pImpl->m_nStorOpenMode);
+ pImpl->m_pInStream.reset( new SvFileStream(pImpl->m_aName, pImpl->m_nStorOpenMode) );
pImpl->m_eError = pImpl->m_pInStream->GetError();
@@ -548,11 +548,10 @@ SvStream* SfxMedium::GetInStream()
&& ! pImpl->m_pInStream->IsWritable() )
{
pImpl->m_eError = ERRCODE_IO_ACCESSDENIED;
- delete pImpl->m_pInStream;
- pImpl->m_pInStream = nullptr;
+ pImpl->m_pInStream.reset();
}
else
- return pImpl->m_pInStream;
+ return pImpl->m_pInStream.get();
}
GetMedium_Impl();
@@ -560,7 +559,7 @@ SvStream* SfxMedium::GetInStream()
if ( GetError() )
return nullptr;
- return pImpl->m_pInStream;
+ return pImpl->m_pInStream.get();
}
@@ -586,7 +585,7 @@ void SfxMedium::CloseInStream_Impl()
return;
}
- DELETEZ( pImpl->m_pInStream );
+ pImpl->m_pInStream.reset();
if ( pImpl->m_pSet )
pImpl->m_pSet->ClearItem( SID_INPUTSTREAM );
@@ -628,14 +627,14 @@ SvStream* SfxMedium::GetOutStream()
{
// On Unix don't try to re-use XOutStream from xStream if that exists;
// it causes fdo#59022 (fails opening files via SMB on Linux)
- pImpl->m_pOutStream = new SvFileStream(
- pImpl->m_aName, StreamMode::STD_READWRITE);
+ pImpl->m_pOutStream.reset( new SvFileStream(
+ pImpl->m_aName, StreamMode::STD_READWRITE) );
}
CloseStorage();
}
}
- return pImpl->m_pOutStream;
+ return pImpl->m_pOutStream.get();
}
@@ -659,8 +658,7 @@ void SfxMedium::CloseOutStream_Impl()
CloseStorage();
}
- delete pImpl->m_pOutStream;
- pImpl->m_pOutStream = nullptr;
+ pImpl->m_pOutStream.reset();
}
if ( !pImpl->m_pInStream )
@@ -752,7 +750,7 @@ bool SfxMedium::IsStorage()
}
else if ( GetInStream() )
{
- pImpl->bIsStorage = SotStorage::IsStorageFile( pImpl->m_pInStream ) && !SotStorage::IsOLEStorage( pImpl->m_pInStream );
+ pImpl->bIsStorage = SotStorage::IsStorageFile( pImpl->m_pInStream.get() ) && !SotStorage::IsOLEStorage( pImpl->m_pInStream.get() );
if ( !pImpl->m_pInStream->GetError() && !pImpl->bIsStorage )
pImpl->m_bTriedStorage = true;
}
diff --git a/sfx2/source/doc/graphhelp.cxx b/sfx2/source/doc/graphhelp.cxx
index f9c9feb256be..c2bd23e05a76 100644
--- a/sfx2/source/doc/graphhelp.cxx
+++ b/sfx2/source/doc/graphhelp.cxx
@@ -87,13 +87,13 @@ void* GraphicHelper::getEnhMetaFileFromGDI_Impl( const GDIMetaFile* pGDIMeta )
OUString aMetaFile = aTempFile.GetFileName();
OUString aMetaURL = aTempFile.GetURL();
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aMetaURL, StreamMode::STD_READWRITE );
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( aMetaURL, StreamMode::STD_READWRITE );
if ( pStream )
{
Graphic aGraph( *pGDIMeta );
ErrCode nFailed = GraphicConverter::Export( *pStream, aGraph, ConvertDataFormat::EMF );
pStream->Flush();
- delete pStream;
+ pStream.reset();
if ( !nFailed )
pResult = GetEnhMetaFileW( o3tl::toW(aMetaFile.getStr()) );
diff --git a/sfx2/source/view/classificationhelper.cxx b/sfx2/source/view/classificationhelper.cxx
index a642d19b65e8..49020b28e086 100644
--- a/sfx2/source/view/classificationhelper.cxx
+++ b/sfx2/source/view/classificationhelper.cxx
@@ -390,8 +390,8 @@ void SfxClassificationHelper::Impl::parsePolicy()
aPath = aLocalized;
}
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(aPath, StreamMode::READ);
- uno::Reference<io::XInputStream> xInputStream(new utl::OStreamWrapper(*pStream));
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(aPath, StreamMode::READ);
+ uno::Reference<io::XInputStream> xInputStream(new utl::OStreamWrapper(std::move(pStream)));
xml::sax::InputSource aParserInput;
aParserInput.aInputStream = xInputStream;
diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx
index 65f9d8a54416..3848fd941585 100644
--- a/sot/source/sdstor/storage.cxx
+++ b/sot/source/sdstor/storage.cxx
@@ -304,7 +304,7 @@ void SotStorage::CreateStorage( bool bForceUCBStorage, StreamMode nMode )
}
// check the stream
- m_pStorStm = ::utl::UcbStreamHelper::CreateStream( m_aName, nMode );
+ m_pStorStm = ::utl::UcbStreamHelper::CreateStream( m_aName, nMode ).release();
if ( m_pStorStm && m_pStorStm->GetError() )
DELETEZ( m_pStorStm );
@@ -730,7 +730,7 @@ SotStorage* SotStorage::OpenOLEStorage( const css::uno::Reference < css::embed::
if ( nMode & StreamMode::NOCREATE )
nEleMode |= embed::ElementModes::NOCREATE;
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
try
{
uno::Reference < io::XStream > xStream = xStorage->openStreamElement( rEleName, nEleMode );
@@ -748,11 +748,11 @@ SotStorage* SotStorage::OpenOLEStorage( const css::uno::Reference < css::embed::
catch ( uno::Exception& )
{
//TODO/LATER: ErrorHandling
- pStream = new SvMemoryStream;
+ pStream.reset( new SvMemoryStream );
pStream->SetError( ERRCODE_IO_GENERAL );
}
- return new SotStorage( pStream, true );
+ return new SotStorage( pStream.release(), true );
}
SotClipboardFormatId SotStorage::GetFormatID( const css::uno::Reference < css::embed::XStorage >& xStorage )
diff --git a/sot/source/sdstor/ucbstorage.cxx b/sot/source/sdstor/ucbstorage.cxx
index 148c23fefaa5..d7ffbbf7a756 100644
--- a/sot/source/sdstor/ucbstorage.cxx
+++ b/sot/source/sdstor/ucbstorage.cxx
@@ -86,7 +86,7 @@ class FileStreamWrapper_Impl : public FileInputStreamWrapper_Base
protected:
::osl::Mutex m_aMutex;
OUString m_aURL;
- SvStream* m_pSvStream;
+ std::unique_ptr<SvStream> m_pSvStream;
public:
explicit FileStreamWrapper_Impl(const OUString& rName);
@@ -119,7 +119,7 @@ FileStreamWrapper_Impl::~FileStreamWrapper_Impl()
{
if ( m_pSvStream )
{
- delete m_pSvStream;
+ m_pSvStream.reset();
#if OSL_DEBUG_LEVEL > 0
--nOpenFiles;
#endif
@@ -224,7 +224,7 @@ void SAL_CALL FileStreamWrapper_Impl::closeInput()
::osl::MutexGuard aGuard( m_aMutex );
checkConnected();
- DELETEZ( m_pSvStream );
+ m_pSvStream.reset();
#if OSL_DEBUG_LEVEL > 0
--nOpenFiles;
#endif
@@ -414,7 +414,7 @@ public:
OString m_aKey;
::ucbhelper::Content* m_pContent; // the content that provides the data
Reference<XInputStream> m_rSource; // the stream covering the original data of the content
- SvStream* m_pStream; // the stream worked on; for readonly streams it is the original stream of the content
+ std::unique_ptr<SvStream> m_pStream; // the stream worked on; for readonly streams it is the original stream of the content
// for read/write streams it's a copy into a temporary file
OUString m_aTempURL; // URL of this temporary stream
ErrCode m_nError;
@@ -672,7 +672,7 @@ UCBStorageStream_Impl::~UCBStorageStream_Impl()
if( m_rSource.is() )
m_rSource.clear();
- delete m_pStream;
+ m_pStream.reset();
if (!m_aTempURL.isEmpty())
osl::File::remove(m_aTempURL);
@@ -1175,7 +1175,7 @@ void UCBStorageStream_Impl::Free()
#endif
m_rSource.clear();
- DELETEZ( m_pStream );
+ m_pStream.reset();
}
void UCBStorageStream_Impl::PrepareCachedForReopen( StreamMode nMode )
@@ -1520,8 +1520,7 @@ UCBStorage_Impl::UCBStorage_Impl( const OUString& rName, StreamMode nMode, UCBSt
if ( m_nMode & StreamMode::WRITE )
{
// the root storage opens the package, so make sure that there is any
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aName, StreamMode::STD_READWRITE, m_pTempFile != nullptr /* bFileExists */ );
- delete pStream;
+ ::utl::UcbStreamHelper::CreateStream( aName, StreamMode::STD_READWRITE, m_pTempFile != nullptr /* bFileExists */ );
}
}
else
diff --git a/sot/source/unoolestorage/xolesimplestorage.cxx b/sot/source/unoolestorage/xolesimplestorage.cxx
index f8b554cb04bb..a3c95d52334e 100644
--- a/sot/source/unoolestorage/xolesimplestorage.cxx
+++ b/sot/source/unoolestorage/xolesimplestorage.cxx
@@ -397,7 +397,7 @@ uno::Any SAL_CALL OLESimpleStorage::getByName( const OUString& aName )
if ( !pStrg )
throw lang::WrappedTargetException(); // io::IOException(); // TODO
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( xTempFile, false ); // do not close the original stream
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( xTempFile, false ); // do not close the original stream
if ( !pStream )
throw uno::RuntimeException();
@@ -407,7 +407,7 @@ uno::Any SAL_CALL OLESimpleStorage::getByName( const OUString& aName )
DELETEZ( pNewStor );
DELETEZ( pStrg );
- DELETEZ( pStream );
+ pStream.reset();
if ( !bSuccess )
throw uno::RuntimeException();
@@ -572,7 +572,7 @@ void SAL_CALL OLESimpleStorage::dispose()
}
DELETEZ( m_pStorage );
- DELETEZ( m_pStream );
+ m_pStream.reset();
m_xStream.clear();
m_xTempStream.clear();
diff --git a/sot/source/unoolestorage/xolesimplestorage.hxx b/sot/source/unoolestorage/xolesimplestorage.hxx
index 1b5216998d19..13ba9d01e5d8 100644
--- a/sot/source/unoolestorage/xolesimplestorage.hxx
+++ b/sot/source/unoolestorage/xolesimplestorage.hxx
@@ -44,7 +44,7 @@ class OLESimpleStorage : public cppu::WeakImplHelper<css::embed::XOLESimpleStora
css::uno::Reference< css::io::XStream > m_xStream;
css::uno::Reference< css::io::XStream > m_xTempStream;
- SvStream* m_pStream;
+ std::unique_ptr<SvStream> m_pStream;
BaseStorage* m_pStorage;
::comphelper::OInterfaceContainerHelper2* m_pListenersContainer; // list of listeners
diff --git a/svl/source/fsstor/fsstorage.cxx b/svl/source/fsstor/fsstorage.cxx
index 3d21e23c3b0c..6a28dc07d422 100644
--- a/svl/source/fsstor/fsstorage.cxx
+++ b/svl/source/fsstor/fsstorage.cxx
@@ -369,14 +369,12 @@ uno::Reference< io::XStream > SAL_CALL FSStorage::openStreamElement(
else
{
// TODO: test whether it really works for http and fwp
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aFileURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ),
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( aFileURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ),
StreamMode::STD_WRITE );
if ( pStream )
{
if ( !pStream->GetError() )
- xResult.set( new ::utl::OStreamWrapper( *pStream ) );
- else
- delete pStream;
+ xResult.set( new ::utl::OStreamWrapper( std::move(pStream) ) );
}
}
@@ -1208,18 +1206,16 @@ uno::Reference< embed::XExtendedStorageStream > SAL_CALL FSStorage::openStreamEl
else
{
// TODO: test whether it really works for http and fwp
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aFileURL,
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( aFileURL,
StreamMode::STD_WRITE );
if ( pStream )
{
if ( !pStream->GetError() )
{
uno::Reference< io::XStream > xStream =
- uno::Reference < io::XStream >( new ::utl::OStreamWrapper( *pStream ) );
+ uno::Reference < io::XStream >( new ::utl::OStreamWrapper( std::move(pStream) ) );
xResult = static_cast< io::XStream* >( new OFSStreamContainer( xStream ) );
}
- else
- delete pStream;
}
}
diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index 0d83432d15f9..b6ec9ae1576d 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -545,7 +545,7 @@ void EmbeddedObjectRef::SetGraphic( const Graphic& rGraphic, const OUString& rMe
mpImpl->bNeedUpdate = false;
}
-SvStream* EmbeddedObjectRef::GetGraphicStream( bool bUpdate ) const
+std::unique_ptr<SvStream> EmbeddedObjectRef::GetGraphicStream( bool bUpdate ) const
{
DBG_ASSERT( bUpdate || mpImpl->pContainer, "Can't retrieve current graphic!" );
uno::Reference < io::XInputStream > xStream;
@@ -557,7 +557,7 @@ SvStream* EmbeddedObjectRef::GetGraphicStream( bool bUpdate ) const
if ( xStream.is() )
{
const sal_Int32 nConstBufferSize = 32000;
- SvStream *pStream = new SvMemoryStream( 32000, 32000 );
+ std::unique_ptr<SvStream> pStream(new SvMemoryStream( 32000, 32000 ));
try
{
sal_Int32 nRead=0;
@@ -574,7 +574,6 @@ SvStream* EmbeddedObjectRef::GetGraphicStream( bool bUpdate ) const
catch (const uno::Exception&)
{
DBG_UNHANDLED_EXCEPTION("svtools.misc", "discarding broken embedded object preview");
- delete pStream;
xStream.clear();
}
}
@@ -607,7 +606,7 @@ SvStream* EmbeddedObjectRef::GetGraphicStream( bool bUpdate ) const
if (mpImpl->pContainer)
mpImpl->pContainer->InsertGraphicStream(xStream,mpImpl->aPersistName,mpImpl->aMediaType);
- SvStream* pResult = ::utl::UcbStreamHelper::CreateStream( xStream );
+ std::unique_ptr<SvStream> pResult = ::utl::UcbStreamHelper::CreateStream( xStream );
if (pResult && bUpdate)
mpImpl->bNeedUpdate = false;
diff --git a/svtools/source/misc/embedtransfer.cxx b/svtools/source/misc/embedtransfer.cxx
index 51c16627e338..29e894c56bd1 100644
--- a/svtools/source/misc/embedtransfer.cxx
+++ b/svtools/source/misc/embedtransfer.cxx
@@ -117,7 +117,7 @@ bool SvEmbedTransferHelper::GetData( const css::datatransfer::DataFlavor& rFlavo
if ( xStg->isStreamElement( aName ) )
{
uno::Reference < io::XStream > xStm = xStg->cloneStreamElement( aName );
- pStream = utl::UcbStreamHelper::CreateStream( xStm );
+ pStream = utl::UcbStreamHelper::CreateStream( xStm ).release();
bDeleteStream = true;
}
else
diff --git a/svtools/source/misc/templatefoldercache.cxx b/svtools/source/misc/templatefoldercache.cxx
index 41141d1ba0c9..6fd4f6944ee7 100644
--- a/svtools/source/misc/templatefoldercache.cxx
+++ b/svtools/source/misc/templatefoldercache.cxx
@@ -702,8 +702,8 @@ namespace svt
aStorageURL.Append( ".templdir.cache" );
// open the stream
- m_pCacheStream.reset( UcbStreamHelper::CreateStream( aStorageURL.GetMainURL( INetURLObject::DecodeMechanism::ToIUri ),
- _bForRead ? StreamMode::READ | StreamMode::NOCREATE : StreamMode::WRITE | StreamMode::TRUNC ) );
+ m_pCacheStream = UcbStreamHelper::CreateStream( aStorageURL.GetMainURL( INetURLObject::DecodeMechanism::ToIUri ),
+ _bForRead ? StreamMode::READ | StreamMode::NOCREATE : StreamMode::WRITE | StreamMode::TRUNC );
DBG_ASSERT( m_pCacheStream, "TemplateFolderCacheImpl::openCacheStream: could not open/create the cache stream!" );
if ( m_pCacheStream && m_pCacheStream->GetErrorCode() )
{
diff --git a/svx/source/xml/xmlgrhlp.cxx b/svx/source/xml/xmlgrhlp.cxx
index 4063179e9082..553522172a27 100644
--- a/svx/source/xml/xmlgrhlp.cxx
+++ b/svx/source/xml/xmlgrhlp.cxx
@@ -111,7 +111,7 @@ GraphicInputStream::GraphicInputStream(GraphicObject const & raGraphicObject, co
if (aGraphicObject.GetType() != GraphicType::NONE)
{
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream(maTempFile.GetURL(), StreamMode::WRITE | StreamMode::TRUNC);
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream(maTempFile.GetURL(), StreamMode::WRITE | StreamMode::TRUNC);
if (pStream)
{
@@ -163,10 +163,8 @@ GraphicInputStream::GraphicInputStream(GraphicObject const & raGraphicObject, co
if (bRet)
{
pStream->Seek( 0 );
- mxStreamWrapper = new ::utl::OInputStreamWrapper(pStream, true);
+ mxStreamWrapper = new ::utl::OInputStreamWrapper(std::move(pStream));
}
- else
- delete pStream;
}
}
}
@@ -250,7 +248,7 @@ SvXMLGraphicOutputStream::SvXMLGraphicOutputStream()
{
mpTmp->EnableKillingFile();
- mpOStm.reset( ::utl::UcbStreamHelper::CreateStream( mpTmp->GetURL(), StreamMode::WRITE | StreamMode::TRUNC ) );
+ mpOStm = ::utl::UcbStreamHelper::CreateStream( mpTmp->GetURL(), StreamMode::WRITE | StreamMode::TRUNC );
if( mpOStm )
mxStmWrapper = new ::utl::OOutputStreamWrapper( *mpOStm );
diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx
index ea3ce849a623..e0d304beabc8 100644
--- a/sw/qa/extras/inc/swmodeltestbase.hxx
+++ b/sw/qa/extras/inc/swmodeltestbase.hxx
@@ -194,11 +194,11 @@ protected:
xImporter->setTargetDocument(mxComponent);
uno::Sequence<beans::PropertyValue> aDescriptor(3);
aDescriptor[0].Name = "InputStream";
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(
m_directories.getURLFromSrc("/sw/qa/extras/") + aFilename,
StreamMode::STD_READ);
CPPUNIT_ASSERT_EQUAL(ERRCODE_NONE, pStream->GetError());
- uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
aDescriptor[0].Value <<= xStream;
aDescriptor[1].Name = "InsertMode";
aDescriptor[1].Value <<= true;
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport10.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport10.cxx
index 894056d70d94..bc4e289647c4 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport10.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport10.cxx
@@ -100,8 +100,8 @@ protected:
uno::Reference<document::XFilter> xFilter(m_xSFactory->createInstance("com.sun.star.comp.Writer.WriterFilter"), uno::UNO_QUERY_THROW);
uno::Reference<document::XImporter> xImporter(xFilter, uno::UNO_QUERY_THROW);
xImporter->setTargetDocument(mxComponent);
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(m_directories.getURLFromSrc("/sw/qa/extras/ooxmlexport/data/") + rFilename, StreamMode::READ);
- uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(m_directories.getURLFromSrc("/sw/qa/extras/ooxmlexport/data/") + rFilename, StreamMode::READ);
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
uno::Sequence<beans::PropertyValue> aDescriptor(comphelper::InitPropertySequence(
{
{"InputStream", uno::makeAny(xStream)},
diff --git a/sw/source/core/swg/SwXMLTextBlocks.cxx b/sw/source/core/swg/SwXMLTextBlocks.cxx
index 0ce9064e5deb..eed2272a3ad5 100644
--- a/sw/source/core/swg/SwXMLTextBlocks.cxx
+++ b/sw/source/core/swg/SwXMLTextBlocks.cxx
@@ -505,9 +505,8 @@ bool SwXMLTextBlocks::IsFileUCBStorage( const OUString & rFileName)
aName = aObj.GetMainURL( INetURLObject::DecodeMechanism::NONE );
}
- SvStream * pStm = ::utl::UcbStreamHelper::CreateStream( aName, StreamMode::STD_READ );
- bool bRet = UCBStorage::IsStorageFile( pStm );
- delete pStm;
+ std::unique_ptr<SvStream> pStm = ::utl::UcbStreamHelper::CreateStream( aName, StreamMode::STD_READ );
+ bool bRet = UCBStorage::IsStorageFile( pStm.get() );
return bRet;
}
diff --git a/sw/source/filter/ww8/rtfexportfilter.cxx b/sw/source/filter/ww8/rtfexportfilter.cxx
index fce00510105c..292e3e3d1e0d 100644
--- a/sw/source/filter/ww8/rtfexportfilter.cxx
+++ b/sw/source/filter/ww8/rtfexportfilter.cxx
@@ -43,8 +43,8 @@ sal_Bool RtfExportFilter::filter(const uno::Sequence<beans::PropertyValue>& aDes
utl::MediaDescriptor aMediaDesc = aDescriptor;
uno::Reference<io::XStream> xStream = aMediaDesc.getUnpackedValueOrDefault(
utl::MediaDescriptor::PROP_STREAMFOROUTPUT(), uno::Reference<io::XStream>());
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(xStream, true);
- m_aWriter.SetStream(pStream);
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(xStream, true);
+ m_aWriter.SetStream(pStream.get());
// get SwDoc*
uno::Reference<uno::XInterface> xIfc(m_xSrcDoc, uno::UNO_QUERY);
@@ -83,7 +83,6 @@ sal_Bool RtfExportFilter::filter(const uno::Sequence<beans::PropertyValue>& aDes
// delete the pCurPam
while (pCurPam->GetNext() != pCurPam.get())
delete pCurPam->GetNext();
- delete pStream;
return true;
}
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index 58c4de33f771..cb1af3ce4d68 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -3775,7 +3775,7 @@ void WW8Export::RestoreMacroCmds()
{
uno::Reference < io::XStream > xSrcStream =
xSrcRoot->openStreamElement( SL::aMSMacroCmds, embed::ElementModes::READ );
- SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( xSrcStream );
+ std::unique_ptr<SvStream> pStream = ::utl::UcbStreamHelper::CreateStream( xSrcStream );
if ( pStream && ERRCODE_NONE == pStream->GetError())
{
@@ -3788,8 +3788,6 @@ void WW8Export::RestoreMacroCmds()
if (bReadOk)
pTableStrm->WriteBytes(pBuffer.get(), pFib->m_lcbCmds);
}
-
- delete pStream;
}
catch ( const uno::Exception& )
{
diff --git a/sw/source/filter/ww8/wrtww8gr.cxx b/sw/source/filter/ww8/wrtww8gr.cxx
index 3d2624f654de..d48a2e404142 100644
--- a/sw/source/filter/ww8/wrtww8gr.cxx
+++ b/sw/source/filter/ww8/wrtww8gr.cxx
@@ -159,7 +159,7 @@ bool WW8Export::TestOleNeedsGraphic(const SwAttrSet& rSet,
uno::Reference< embed::XEmbeddedObject > xObj = pOLENd->GetOLEObj().GetOleRef();
if ( xObj.is() )
{
- SvStream* pGraphicStream = nullptr;
+ std::unique_ptr<SvStream> pGraphicStream;
comphelper::EmbeddedObjectContainer aCnt( m_pDoc->GetDocStorage() );
try
{
@@ -183,7 +183,6 @@ bool WW8Export::TestOleNeedsGraphic(const SwAttrSet& rSet,
if( rGF.ImportGraphic( aGr1, OUString(), *pGraphicStream ) == ERRCODE_NONE )
{
Graphic aGr2;
- delete pGraphicStream;
pGraphicStream =
::utl::UcbStreamHelper::CreateStream( aCnt.GetGraphicStream( pRet->GetObjRef() ) );
if( pGraphicStream && rGF.ImportGraphic( aGr2, OUString(), *pGraphicStream ) == ERRCODE_NONE )
@@ -193,7 +192,6 @@ bool WW8Export::TestOleNeedsGraphic(const SwAttrSet& rSet,
}
}
}
- delete pGraphicStream;
}
// always use SdrObject::Free(...) for SdrObjects (!)
diff --git a/sw/source/filter/xml/swxml.cxx b/sw/source/filter/xml/swxml.cxx
index 928df235531b..3d64af5c5c57 100644
--- a/sw/source/filter/xml/swxml.cxx
+++ b/sw/source/filter/xml/swxml.cxx
@@ -855,10 +855,9 @@ ErrCode XMLReader::Read( SwDoc &rDoc, const OUString& rBaseURL, SwPaM &rPaM, con
try
{
uno::Reference < io::XStream > xStm = xStorage->openStreamElement( "layout-cache", embed::ElementModes::READ );
- SvStream* pStrm2 = utl::UcbStreamHelper::CreateStream( xStm );
+ std::unique_ptr<SvStream> pStrm2 = utl::UcbStreamHelper::CreateStream( xStm );
if( !pStrm2->GetError() )
rDoc.ReadLayoutCache( *pStrm2 );
- delete pStrm2;
}
catch (const uno::Exception&)
{
diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx
index 4700a5ce86d1..8006286146cf 100644
--- a/sw/source/filter/xml/wrtxml.cxx
+++ b/sw/source/filter/xml/wrtxml.cxx
@@ -372,7 +372,7 @@ ErrCode SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& xS
try
{
uno::Reference < io::XStream > xStm = xStg->openStreamElement( "layout-cache", embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE );
- SvStream* pStream = utl::UcbStreamHelper::CreateStream( xStm );
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream( xStm );
if( !pStream->GetError() )
{
uno::Reference < beans::XPropertySet > xSet( xStm, UNO_QUERY );
@@ -381,8 +381,6 @@ ErrCode SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& xS
xSet->setPropertyValue("MediaType", aAny2 );
m_pDoc->WriteLayoutCache( *pStream );
}
-
- delete pStream;
}
catch ( uno::Exception& )
{
diff --git a/sw/source/uibase/uno/SwXFilterOptions.cxx b/sw/source/uibase/uno/SwXFilterOptions.cxx
index d7163846db00..0c09c570308b 100644
--- a/sw/source/uibase/uno/SwXFilterOptions.cxx
+++ b/sw/source/uibase/uno/SwXFilterOptions.cxx
@@ -81,7 +81,7 @@ sal_Int16 SwXFilterOptions::execute()
std::unique_ptr<SvStream> pInStream;
if ( xInputStream.is() )
- pInStream.reset(utl::UcbStreamHelper::CreateStream( xInputStream ));
+ pInStream = utl::UcbStreamHelper::CreateStream( xInputStream );
uno::Reference< XUnoTunnel > xTunnel(xModel, uno::UNO_QUERY);
SwDocShell* pDocShell = nullptr;
diff --git a/unotools/source/streaming/streamwrap.cxx b/unotools/source/streaming/streamwrap.cxx
index dec5f38f8bc4..fc68b8df300d 100644
--- a/unotools/source/streaming/streamwrap.cxx
+++ b/unotools/source/streaming/streamwrap.cxx
@@ -43,6 +43,12 @@ OInputStreamWrapper::OInputStreamWrapper( SvStream* pStream, bool bOwner )
{
}
+OInputStreamWrapper::OInputStreamWrapper( std::unique_ptr<SvStream> pStream )
+ :m_pSvStream( pStream.release() )
+ ,m_bSvStreamOwner( true )
+{
+}
+
OInputStreamWrapper::~OInputStreamWrapper()
{
if( m_bSvStreamOwner )
@@ -288,6 +294,11 @@ OStreamWrapper::OStreamWrapper(SvStream& _rStream)
SetStream( &_rStream, false );
}
+OStreamWrapper::OStreamWrapper(std::unique_ptr<SvStream> pStream)
+{
+ SetStream( pStream.release(), true );
+}
+
css::uno::Reference< css::io::XInputStream > SAL_CALL OStreamWrapper::getInputStream( )
{
return this;
diff --git a/unotools/source/ucbhelper/ucbstreamhelper.cxx b/unotools/source/ucbhelper/ucbstreamhelper.cxx
index 63260f632b91..7ded3ca9ad47 100644
--- a/unotools/source/ucbhelper/ucbstreamhelper.cxx
+++ b/unotools/source/ucbhelper/ucbstreamhelper.cxx
@@ -42,11 +42,11 @@ using namespace ::com::sun::star::beans;
namespace utl
{
-static SvStream* lcl_CreateStream( const OUString& rFileName, StreamMode eOpenMode,
+static std::unique_ptr<SvStream> lcl_CreateStream( const OUString& rFileName, StreamMode eOpenMode,
const Reference < XInteractionHandler >& xInteractionHandler,
bool bEnsureFileExists )
{
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
UcbLockBytesRef xLockBytes;
if ( eOpenMode & StreamMode::WRITE )
{
@@ -119,7 +119,7 @@ static SvStream* lcl_CreateStream( const OUString& rFileName, StreamMode eOpenMo
eOpenMode, xInteractionHandler );
if ( xLockBytes.is() )
{
- pStream = new SvStream( xLockBytes.get() );
+ pStream.reset( new SvStream( xLockBytes.get() ) );
pStream->SetBufferSize( 4096 );
pStream->SetError( xLockBytes->GetError() );
}
@@ -137,7 +137,7 @@ static SvStream* lcl_CreateStream( const OUString& rFileName, StreamMode eOpenMo
return pStream;
}
-SvStream* UcbStreamHelper::CreateStream( const OUString& rFileName, StreamMode eOpenMode )
+std::unique_ptr<SvStream> UcbStreamHelper::CreateStream( const OUString& rFileName, StreamMode eOpenMode )
{
// related tdf#99312
// create a specialized interaction handler to manages Web certificates and Web credentials when needed
@@ -149,7 +149,7 @@ SvStream* UcbStreamHelper::CreateStream( const OUString& rFileName, StreamMode e
return lcl_CreateStream( rFileName, eOpenMode, xIHScoped, true /* bEnsureFileExists */ );
}
-SvStream* UcbStreamHelper::CreateStream( const OUString& rFileName, StreamMode eOpenMode,
+std::unique_ptr<SvStream> UcbStreamHelper::CreateStream( const OUString& rFileName, StreamMode eOpenMode,
bool bFileExists )
{
// related tdf#99312
@@ -162,13 +162,13 @@ SvStream* UcbStreamHelper::CreateStream( const OUString& rFileName, StreamMode e
}
-SvStream* UcbStreamHelper::CreateStream( const Reference < XInputStream >& xStream )
+std::unique_ptr<SvStream> UcbStreamHelper::CreateStream( const Reference < XInputStream >& xStream )
{
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
UcbLockBytesRef xLockBytes = UcbLockBytes::CreateInputLockBytes( xStream );
if ( xLockBytes.is() )
{
- pStream = new SvStream( xLockBytes.get() );
+ pStream.reset( new SvStream( xLockBytes.get() ) );
pStream->SetBufferSize( 4096 );
pStream->SetError( xLockBytes->GetError() );
}
@@ -176,15 +176,15 @@ SvStream* UcbStreamHelper::CreateStream( const Reference < XInputStream >& xStre
return pStream;
}
-SvStream* UcbStreamHelper::CreateStream( const Reference < XStream >& xStream )
+std::unique_ptr<SvStream> UcbStreamHelper::CreateStream( const Reference < XStream >& xStream )
{
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
if ( xStream->getOutputStream().is() )
{
UcbLockBytesRef xLockBytes = UcbLockBytes::CreateLockBytes( xStream );
if ( xLockBytes.is() )
{
- pStream = new SvStream( xLockBytes.get() );
+ pStream.reset( new SvStream( xLockBytes.get() ) );
pStream->SetBufferSize( 4096 );
pStream->SetError( xLockBytes->GetError() );
}
@@ -195,16 +195,16 @@ SvStream* UcbStreamHelper::CreateStream( const Reference < XStream >& xStream )
return pStream;
}
-SvStream* UcbStreamHelper::CreateStream( const Reference < XInputStream >& xStream, bool bCloseStream )
+std::unique_ptr<SvStream> UcbStreamHelper::CreateStream( const Reference < XInputStream >& xStream, bool bCloseStream )
{
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
UcbLockBytesRef xLockBytes = UcbLockBytes::CreateInputLockBytes( xStream );
if ( xLockBytes.is() )
{
if ( !bCloseStream )
xLockBytes->setDontClose_Impl();
- pStream = new SvStream( xLockBytes.get() );
+ pStream.reset( new SvStream( xLockBytes.get() ) );
pStream->SetBufferSize( 4096 );
pStream->SetError( xLockBytes->GetError() );
}
@@ -212,9 +212,9 @@ SvStream* UcbStreamHelper::CreateStream( const Reference < XInputStream >& xStre
return pStream;
};
-SvStream* UcbStreamHelper::CreateStream( const Reference < XStream >& xStream, bool bCloseStream )
+std::unique_ptr<SvStream> UcbStreamHelper::CreateStream( const Reference < XStream >& xStream, bool bCloseStream )
{
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
if ( xStream->getOutputStream().is() )
{
UcbLockBytesRef xLockBytes = UcbLockBytes::CreateLockBytes( xStream );
@@ -223,7 +223,7 @@ SvStream* UcbStreamHelper::CreateStream( const Reference < XStream >& xStream, b
if ( !bCloseStream )
xLockBytes->setDontClose_Impl();
- pStream = new SvStream( xLockBytes.get() );
+ pStream.reset( new SvStream( xLockBytes.get() ) );
pStream->SetBufferSize( 4096 );
pStream->SetError( xLockBytes->GetError() );
}
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index fea987a63520..fbf495aec3af 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -1297,7 +1297,7 @@ ErrCode GraphicFilter::ImportGraphic(
struct GraphicImportContext
{
/// Pixel data is read from this stream.
- std::shared_ptr<SvStream> m_pStream;
+ std::unique_ptr<SvStream> m_pStream;
/// The Graphic the import filter gets.
std::shared_ptr<Graphic> m_pGraphic;
/// Write pixel data using this access.
@@ -1342,34 +1342,34 @@ void GraphicImportTask::doImport(GraphicImportContext& rContext)
rContext.m_eLinkType = GfxLinkType::NativeJpg;
}
-void GraphicFilter::ImportGraphics(std::vector< std::shared_ptr<Graphic> >& rGraphics, const std::vector< std::shared_ptr<SvStream> >& rStreams)
+void GraphicFilter::ImportGraphics(std::vector< std::shared_ptr<Graphic> >& rGraphics, std::vector< std::unique_ptr<SvStream> > vStreams)
{
static bool bThreads = !getenv("VCL_NO_THREAD_IMPORT");
std::vector<GraphicImportContext> aContexts;
- aContexts.reserve(rStreams.size());
+ aContexts.reserve(vStreams.size());
comphelper::ThreadPool& rSharedPool = comphelper::ThreadPool::getSharedOptimalPool();
std::shared_ptr<comphelper::ThreadTaskTag> pTag = comphelper::ThreadPool::createThreadTaskTag();
- for (const auto& pStream : rStreams)
+ for (auto& pStream : vStreams)
{
aContexts.emplace_back();
GraphicImportContext& rContext = aContexts.back();
if (pStream)
{
- rContext.m_pStream = pStream;
+ rContext.m_pStream = std::move(pStream);
rContext.m_pGraphic = std::make_shared<Graphic>();
rContext.m_nStatus = ERRCODE_NONE;
// Detect the format.
ResetLastError();
- rContext.m_nStreamBegin = pStream->Tell();
+ rContext.m_nStreamBegin = rContext.m_pStream->Tell();
sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW;
- rContext.m_nStatus = ImpTestOrFindFormat(OUString(), *pStream, nFormat);
- pStream->Seek(rContext.m_nStreamBegin);
+ rContext.m_nStatus = ImpTestOrFindFormat(OUString(), *rContext.m_pStream, nFormat);
+ rContext.m_pStream->Seek(rContext.m_nStreamBegin);
// Import the graphic.
- if (rContext.m_nStatus == ERRCODE_NONE && !pStream->GetError())
+ if (rContext.m_nStatus == ERRCODE_NONE && !rContext.m_pStream->GetError())
{
OUString aFilterName = pConfig->GetImportFilterName(nFormat);
@@ -1377,13 +1377,13 @@ void GraphicFilter::ImportGraphics(std::vector< std::shared_ptr<Graphic> >& rGra
{
rContext.m_nImportFlags = GraphicFilterImportFlags::SetLogsizeForJpeg;
- if (!ImportJPEG( *pStream, *rContext.m_pGraphic, rContext.m_nImportFlags | GraphicFilterImportFlags::OnlyCreateBitmap, nullptr))
+ if (!ImportJPEG( *rContext.m_pStream, *rContext.m_pGraphic, rContext.m_nImportFlags | GraphicFilterImportFlags::OnlyCreateBitmap, nullptr))
rContext.m_nStatus = ERRCODE_GRFILTER_FILTERERROR;
else
{
Bitmap& rBitmap = const_cast<Bitmap&>(rContext.m_pGraphic->GetBitmapExRef().GetBitmapRef());
rContext.m_pAccess = o3tl::make_unique<BitmapScopedWriteAccess>(rBitmap);
- pStream->Seek(rContext.m_nStreamBegin);
+ rContext.m_pStream->Seek(rContext.m_nStreamBegin);
if (bThreads)
rSharedPool.pushTask(o3tl::make_unique<GraphicImportTask>(pTag, rContext));
else
@@ -2574,7 +2574,7 @@ ErrCode GraphicFilter::LoadGraphic( const OUString &rPath, const OUString &rFilt
std::unique_ptr<SvStream> pStream;
if ( INetProtocol::File != aURL.GetProtocol() )
- pStream.reset(::utl::UcbStreamHelper::CreateStream( rPath, StreamMode::READ ));
+ pStream = ::utl::UcbStreamHelper::CreateStream( rPath, StreamMode::READ );
ErrCode nRes = ERRCODE_NONE;
if ( !pStream )
diff --git a/vcl/source/filter/graphicfilter2.cxx b/vcl/source/filter/graphicfilter2.cxx
index d0bf0517cd8c..f9b5ae775c7f 100644
--- a/vcl/source/filter/graphicfilter2.cxx
+++ b/vcl/source/filter/graphicfilter2.cxx
@@ -28,7 +28,7 @@
#define DATA_SIZE 640
GraphicDescriptor::GraphicDescriptor( const INetURLObject& rPath ) :
- pFileStm( ::utl::UcbStreamHelper::CreateStream( rPath.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ ) ),
+ pFileStm( ::utl::UcbStreamHelper::CreateStream( rPath.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ ).release() ),
aPathExt( rPath.GetFileExtension().toAsciiLowerCase() ),
bOwnStream( true )
{
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index ff59da4a9f0b..467e130c8738 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1444,7 +1444,7 @@ bool ImpGraphic::ImplSwapOut()
std::unique_ptr<SvStream> xOStm;
try
{
- xOStm.reset(::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE ));
+ xOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE );
}
catch( const css::uno::Exception& )
{
@@ -1571,7 +1571,7 @@ bool ImpGraphic::ImplSwapIn()
std::unique_ptr<SvStream> xIStm;
try
{
- xIStm.reset(::utl::UcbStreamHelper::CreateStream( aSwapURL, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE ));
+ xIStm = ::utl::UcbStreamHelper::CreateStream( aSwapURL, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE );
}
catch( const css::uno::Exception& )
{
diff --git a/vcl/source/graphic/GraphicLoader.cxx b/vcl/source/graphic/GraphicLoader.cxx
index 22151bf9d88a..770cb2158fba 100644
--- a/vcl/source/graphic/GraphicLoader.cxx
+++ b/vcl/source/graphic/GraphicLoader.cxx
@@ -24,8 +24,8 @@ Graphic loadFromURL(OUString const& rURL)
{
Graphic aGraphic;
- std::unique_ptr<SvStream> pInputStream;
- pInputStream.reset(utl::UcbStreamHelper::CreateStream(rURL, StreamMode::READ));
+ std::unique_ptr<SvStream> pInputStream
+ = utl::UcbStreamHelper::CreateStream(rURL, StreamMode::READ);
if (pInputStream)
{
diff --git a/vcl/source/graphic/UnoGraphicProvider.cxx b/vcl/source/graphic/UnoGraphicProvider.cxx
index bf0b0bc8f654..5b28ed3723c5 100644
--- a/vcl/source/graphic/UnoGraphicProvider.cxx
+++ b/vcl/source/graphic/UnoGraphicProvider.cxx
@@ -366,7 +366,7 @@ uno::Reference< ::graphic::XGraphic > SAL_CALL GraphicProvider::queryGraphic( co
if( xIStm.is() )
{
- pIStm.reset(::utl::UcbStreamHelper::CreateStream( xIStm ));
+ pIStm = ::utl::UcbStreamHelper::CreateStream( xIStm );
}
else if( !aPath.isEmpty() )
{
@@ -379,7 +379,7 @@ uno::Reference< ::graphic::XGraphic > SAL_CALL GraphicProvider::queryGraphic( co
xRet = implLoadStandardImage( aPath );
if( !xRet.is() )
- pIStm.reset(::utl::UcbStreamHelper::CreateStream( aPath, StreamMode::READ ));
+ pIStm = ::utl::UcbStreamHelper::CreateStream( aPath, StreamMode::READ );
}
else if( xBtm.is() )
{
@@ -441,10 +441,10 @@ uno::Sequence< uno::Reference<graphic::XGraphic> > SAL_CALL GraphicProvider::que
SolarMutexGuard aGuard;
// Turn properties into streams.
- std::vector< std::shared_ptr<SvStream> > aStreams;
+ std::vector< std::unique_ptr<SvStream> > aStreams;
for (const auto& rMediaProperties : rMediaPropertiesSeq)
{
- SvStream* pStream = nullptr;
+ std::unique_ptr<SvStream> pStream;
uno::Reference<io::XInputStream> xStream;
for (sal_Int32 i = 0; rMediaProperties.getLength(); ++i)
@@ -458,14 +458,13 @@ uno::Sequence< uno::Reference<graphic::XGraphic> > SAL_CALL GraphicProvider::que
}
}
- aStreams.push_back(std::shared_ptr<SvStream>(pStream));
-
+ aStreams.push_back(std::move(pStream));
}
// Import: streams to graphics.
std::vector< std::shared_ptr<Graphic> > aGraphics;
GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter();
- rFilter.ImportGraphics(aGraphics, aStreams);
+ rFilter.ImportGraphics(aGraphics, std::move(aStreams));
// Returning: graphics to UNO objects.
std::vector< uno::Reference<graphic::XGraphic> > aRet;
@@ -718,7 +717,7 @@ void SAL_CALL GraphicProvider::storeGraphic( const uno::Reference< ::graphic::XG
OUString aURL;
aValue >>= aURL;
- pOStm.reset(::utl::UcbStreamHelper::CreateStream( aURL, StreamMode::WRITE | StreamMode::TRUNC ));
+ pOStm = ::utl::UcbStreamHelper::CreateStream( aURL, StreamMode::WRITE | StreamMode::TRUNC );
aPath = aURL;
}
else if (aName == "OutputStream")
@@ -728,7 +727,7 @@ void SAL_CALL GraphicProvider::storeGraphic( const uno::Reference< ::graphic::XG
aValue >>= xOStm;
if( xOStm.is() )
- pOStm.reset(::utl::UcbStreamHelper::CreateStream( xOStm ));
+ pOStm = ::utl::UcbStreamHelper::CreateStream( xOStm );
}
}
diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx
index 8cb92e7f6624..ba6e3faa8d97 100644
--- a/writerfilter/source/filter/RtfFilter.cxx
+++ b/writerfilter/source/filter/RtfFilter.cxx
@@ -123,8 +123,8 @@ sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& rDescrip
{
OUString aInStr;
osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pEnv), aInStr);
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(aInStr, StreamMode::READ);
- uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(aInStr, StreamMode::READ);
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
xInputStream.set(xStream, uno::UNO_QUERY);
}
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index fca227d9a702..aa4f859aabc3 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -297,7 +297,7 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference<uno::XComponentContext> const& x
, m_bAfterCellBeforeRow(false)
{
OSL_ASSERT(xInputStream.is());
- m_pInStream.reset(utl::UcbStreamHelper::CreateStream(xInputStream, true));
+ m_pInStream = utl::UcbStreamHelper::CreateStream(xInputStream, true);
m_xModelFactory.set(m_xDstDoc, uno::UNO_QUERY);
diff --git a/writerperfect/source/common/WPXSvInputStream.cxx b/writerperfect/source/common/WPXSvInputStream.cxx
index 2dfee8a44799..1c06f1b784bd 100644
--- a/writerperfect/source/common/WPXSvInputStream.cxx
+++ b/writerperfect/source/common/WPXSvInputStream.cxx
@@ -144,7 +144,7 @@ struct OLEStorageImpl
{
OLEStorageImpl();
- void initialize(SvStream* pStream);
+ void initialize(std::unique_ptr<SvStream> pStream);
tools::SvRef<SotStorageStream> getStream(const rtl::OUString& rPath);
tools::SvRef<SotStorageStream> const& getStream(std::size_t nId);
@@ -178,12 +178,12 @@ OLEStorageImpl::OLEStorageImpl()
{
}
-void OLEStorageImpl::initialize(SvStream* const pStream)
+void OLEStorageImpl::initialize(std::unique_ptr<SvStream> pStream)
{
if (!pStream)
return;
- mxRootStorage.ref = new SotStorage(pStream, true);
+ mxRootStorage.ref = new SotStorage(pStream.release(), true);
traverse(mxRootStorage.ref, "");
diff --git a/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx b/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx
index 442323deb6ad..338feda0e134 100644
--- a/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx
+++ b/xmlsecurity/qa/unit/pdfsigning/pdfsigning.cxx
@@ -324,9 +324,9 @@ void PDFSigningTest::testPDFRemoveAll()
osl::File::copy(m_directories.getURLFromSrc(DATA_DIRECTORY) + "2good.pdf", aOutURL));
// Load the test document as a storage and read its two signatures.
DocumentSignatureManager aManager(mxComponentContext, DocumentSignatureMode::Content);
- SvStream* pStream
+ std::unique_ptr<SvStream> pStream
= utl::UcbStreamHelper::CreateStream(aOutURL, StreamMode::READ | StreamMode::WRITE);
- uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
aManager.mxSignatureStream = xStream;
aManager.read(/*bUseTempStream=*/false);
std::vector<SignatureInformation>& rInformations = aManager.maCurrentSignatureInformations;
@@ -354,9 +354,9 @@ void PDFSigningTest::testTdf107782()
// Load the test document as a storage and read its signatures.
DocumentSignatureManager aManager(mxComponentContext, DocumentSignatureMode::Content);
OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "tdf107782.pdf";
- SvStream* pStream
+ std::unique_ptr<SvStream> pStream
= utl::UcbStreamHelper::CreateStream(aURL, StreamMode::READ | StreamMode::WRITE);
- uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
aManager.mxSignatureStream = xStream;
aManager.read(/*bUseTempStream=*/false);
CPPUNIT_ASSERT(aManager.mpPDFSignatureHelper);
@@ -514,9 +514,9 @@ void PDFSigningTest::testUnknownSubFilter()
= xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext
= xSEInitializer->createSecurityContext(OUString());
- SvStream* pStream = utl::UcbStreamHelper::CreateStream(
+ std::unique_ptr<SvStream> pStream = utl::UcbStreamHelper::CreateStream(
m_directories.getURLFromSrc(DATA_DIRECTORY) + "cr-comment.pdf", StreamMode::STD_READ);
- uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(std::move(pStream)));
DocumentSignatureManager aManager(mxComponentContext, DocumentSignatureMode::Content);
aManager.mxSignatureStream = xStream;
aManager.read(/*bUseTempStream=*/false);