use unique_ptr in sfx2
Change-Id: I4e0bba9b8bebdeb9263ad71d3ab505d8beed17b7
Reviewed-on: https://gerrit.libreoffice.org/65441
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/include/sfx2/bindings.hxx b/include/sfx2/bindings.hxx
index 38a41a2..8966370 100644
--- a/include/sfx2/bindings.hxx
+++ b/include/sfx2/bindings.hxx
@@ -99,7 +99,7 @@ private:
SfxCallMode nCall, const SfxPoolItem **pInternalArgs, bool bGlobalOnly=false);
SAL_DLLPRIVATE void SetSubBindings_Impl( SfxBindings* );
SAL_DLLPRIVATE void UpdateSlotServer_Impl(); // Update SlotServer
SAL_DLLPRIVATE SfxItemSet* CreateSet_Impl(SfxStateCache& rCache, const SfxSlot* &pRealSlot,
SAL_DLLPRIVATE std::unique_ptr<SfxItemSet> CreateSet_Impl(SfxStateCache& rCache, const SfxSlot* &pRealSlot,
const SfxSlotServer**, SfxFoundCacheArr_Impl&);
SAL_DLLPRIVATE std::size_t GetSlotPos( sal_uInt16 nId, std::size_t nStartSearchAt = 0 );
SAL_DLLPRIVATE void Update_Impl(SfxStateCache& rCache);
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index e917c3a..bc4c6ba 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -493,13 +493,11 @@ ShutdownIcon* ShutdownIcon::createInstance()
if (pShutdownIcon)
return pShutdownIcon;
ShutdownIcon *pIcon = nullptr;
try {
pIcon = new ShutdownIcon( comphelper::getProcessComponentContext() );
std::unique_ptr<ShutdownIcon> pIcon(new ShutdownIcon( comphelper::getProcessComponentContext() ));
pIcon->init ();
pShutdownIcon = pIcon;
pShutdownIcon = pIcon.release();
} catch (...) {
delete pIcon;
}
return pShutdownIcon;
diff --git a/sfx2/source/appl/xpackcreator.cxx b/sfx2/source/appl/xpackcreator.cxx
index f5b7f7e..0e0c559 100644
--- a/sfx2/source/appl/xpackcreator.cxx
+++ b/sfx2/source/appl/xpackcreator.cxx
@@ -67,7 +67,7 @@ void SAL_CALL OPackageStructureCreator::convertToPackage( const OUString& aFolde
::ucbhelper::Content aContent;
if( ::ucbhelper::Content::create( aFolderUrl, xComEnv, comphelper::getProcessComponentContext(), aContent ) )
{
SvStream* pTempStream = nullptr;
std::unique_ptr<SvStream> pTempStream;
OUString aTempURL = ::utl::TempFile().GetURL();
try {
@@ -82,7 +82,7 @@ void SAL_CALL OPackageStructureCreator::convertToPackage( const OUString& aFolde
if ( !aTempURL.isEmpty() )
{
pTempStream = new SvFileStream( aTempURL, StreamMode::STD_READWRITE );
pTempStream.reset(new SvFileStream( aTempURL, StreamMode::STD_READWRITE ));
tools::SvRef<SotStorage> aTargetStorage = new SotStorage( true, *pTempStream );
aStorage->CopyTo( aTargetStorage.get() );
aTargetStorage->Commit();
@@ -116,7 +116,7 @@ void SAL_CALL OPackageStructureCreator::convertToPackage( const OUString& aFolde
}
catch (const uno::RuntimeException&)
{
delete pTempStream;
pTempStream.reset();
if ( !aTempURL.isEmpty() )
::utl::UCBContentHelper::Kill( aTempURL );
@@ -125,7 +125,7 @@ void SAL_CALL OPackageStructureCreator::convertToPackage( const OUString& aFolde
}
catch (const io::IOException&)
{
delete pTempStream;
pTempStream.reset();
if ( !aTempURL.isEmpty() )
::utl::UCBContentHelper::Kill( aTempURL );
@@ -136,7 +136,7 @@ void SAL_CALL OPackageStructureCreator::convertToPackage( const OUString& aFolde
{
}
delete pTempStream;
pTempStream.reset();
if ( !aTempURL.isEmpty() )
::utl::UCBContentHelper::Kill( aTempURL );
diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx
index c5f5644..e1803db 100644
--- a/sfx2/source/control/bindings.cxx
+++ b/sfx2/source/control/bindings.cxx
@@ -259,7 +259,7 @@ void SfxBindings::Update_Impl(SfxStateCache& rCache /*The up to date SfxStatusCa
const SfxSlot *pRealSlot = nullptr;
const SfxSlotServer* pMsgServer = nullptr;
SfxFoundCacheArr_Impl aFound;
SfxItemSet *pSet = CreateSet_Impl(rCache, pRealSlot, &pMsgServer, aFound);
std::unique_ptr<SfxItemSet> pSet = CreateSet_Impl(rCache, pRealSlot, &pMsgServer, aFound);
bool bUpdated = false;
if ( pSet )
{
@@ -280,7 +280,7 @@ void SfxBindings::Update_Impl(SfxStateCache& rCache /*The up to date SfxStatusCa
bUpdated = true;
}
delete pSet;
pSet.reset();
}
if (!bUpdated)
@@ -1093,7 +1093,7 @@ void SfxBindings::UpdateSlotServer_Impl()
}
SfxItemSet* SfxBindings::CreateSet_Impl
std::unique_ptr<SfxItemSet> SfxBindings::CreateSet_Impl
(
SfxStateCache& rCache, // in: Status-Cache from nId
const SfxSlot*& pRealSlot, // out: RealSlot to nId
@@ -1182,7 +1182,7 @@ SfxItemSet* SfxBindings::CreateSet_Impl
pRanges[j++] = rFound[i++].nWhichId;
}
pRanges[j] = 0; // terminating NULL
SfxItemSet *pSet = new SfxItemSet(rPool, pRanges.get());
std::unique_ptr<SfxItemSet> pSet(new SfxItemSet(rPool, pRanges.get()));
pRanges.reset();
return pSet;
}
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index c0d8802..52a6253 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -939,16 +939,16 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
const SfxSlot *pSlot = nullptr;
if ( GetShellAndSlot_Impl( nSlot, &pShell, &pSlot, false, true ) )
{
SfxRequest* pReq;
std::unique_ptr<SfxRequest> pReq;
if ( pArgs && *pArgs )
{
SfxAllItemSet aSet( pShell->GetPool() );
for ( const SfxPoolItem **pArg = pArgs; *pArg; ++pArg )
MappedPut_Impl( aSet, **pArg );
pReq = new SfxRequest( nSlot, eCall, aSet );
pReq.reset(new SfxRequest( nSlot, eCall, aSet ));
}
else
pReq = new SfxRequest( nSlot, eCall, pShell->GetPool() );
pReq.reset(new SfxRequest( nSlot, eCall, pShell->GetPool() ));
pReq->SetModifier( nModi );
if( pInternalArgs && *pInternalArgs)
{
@@ -959,7 +959,7 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
}
Execute_( *pShell, *pSlot, *pReq, eCall );
const SfxPoolItem* pRet = pReq->GetReturnValue();
delete pReq; return pRet;
return pRet;
}
return nullptr;
}
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index c67ce9d..664e609 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -772,9 +772,9 @@ void BackingWindow::dispatchURL( const OUString& i_rURL,
// dispatch the URL
if ( xDispatch.is() )
{
ImplDelayedDispatch* pDisp = new ImplDelayedDispatch( xDispatch, aDispatchURL, i_rArgs );
if( Application::PostUserEvent( Link<void*,void>( nullptr, implDispatchDelayed ), pDisp ) == nullptr )
delete pDisp; // event could not be posted for unknown reason, at least don't leak
std::unique_ptr<ImplDelayedDispatch> pDisp(new ImplDelayedDispatch( xDispatch, aDispatchURL, i_rArgs ));
if( Application::PostUserEvent( Link<void*,void>( nullptr, implDispatchDelayed ), pDisp.get() ) )
pDisp.release();
}
}
catch (const css::uno::RuntimeException&)
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index e6eefe86..535af7f 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -3172,10 +3172,10 @@ void SfxMedium::CompleteReOpen()
bool bUseInteractionHandler = pImpl->bUseInteractionHandler;
pImpl->bUseInteractionHandler = false;
::utl::TempFile* pTmpFile = nullptr;
std::unique_ptr<::utl::TempFile> pTmpFile;
if ( pImpl->pTempFile )
{
pTmpFile = pImpl->pTempFile.release();
pTmpFile = std::move(pImpl->pTempFile);
pImpl->m_aName.clear();
}
@@ -3188,15 +3188,14 @@ void SfxMedium::CompleteReOpen()
pImpl->pTempFile->EnableKillingFile();
pImpl->pTempFile.reset();
}
pImpl->pTempFile.reset( pTmpFile );
pImpl->pTempFile = std::move( pTmpFile );
if ( pImpl->pTempFile )
pImpl->m_aName = pImpl->pTempFile->GetFileName();
}
else if (pTmpFile)
{
pTmpFile->EnableKillingFile();
delete pTmpFile;
pTmpFile.reset();
}
pImpl->bUseInteractionHandler = bUseInteractionHandler;
@@ -3717,7 +3716,7 @@ void SfxMedium::CreateTempFile( bool bReplace )
GetOutStream();
if ( pImpl->m_pOutStream )
{
char *pBuf = new char [8192];
std::unique_ptr<char[]> pBuf(new char [8192]);
ErrCode nErr = ERRCODE_NONE;
pImpl->m_pInStream->Seek(0);
@@ -3725,13 +3724,12 @@ void SfxMedium::CreateTempFile( bool bReplace )
while( !pImpl->m_pInStream->eof() && nErr == ERRCODE_NONE )
{
sal_uInt32 nRead = pImpl->m_pInStream->ReadBytes(pBuf, 8192);
sal_uInt32 nRead = pImpl->m_pInStream->ReadBytes(pBuf.get(), 8192);
nErr = pImpl->m_pInStream->GetError();
pImpl->m_pOutStream->WriteBytes( pBuf, nRead );
pImpl->m_pOutStream->WriteBytes( pBuf.get(), nRead );
}
bTransferSuccess = true;
delete[] pBuf;
CloseInStream();
}
CloseOutStream_Impl();
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 42dc41c..e7f49fd 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -1951,11 +1951,10 @@ Any SAL_CALL SfxBaseModel::getTransferData( const datatransfer::DataFlavor& aFla
utl::TempFile aTmp;
aTmp.EnableKillingFile();
storeToURL( aTmp.GetURL(), Sequence < beans::PropertyValue >() );
SvStream* pStream = aTmp.GetStream( StreamMode::READ );
std::unique_ptr<SvStream> pStream(aTmp.GetStream( StreamMode::READ ));
const sal_uInt32 nLen = pStream->TellEnd();
Sequence< sal_Int8 > aSeq( nLen );
pStream->ReadBytes(aSeq.getArray(), nLen);
delete pStream;
if( aSeq.getLength() )
aAny <<= aSeq;
}