[Libreoffice-commits] core.git: Branch 'feature/useuniqueptr-3' - 32 commits - basic/source compilerplugins/clang cppcanvas/source drawinglayer/source hwpfilter/source idl/inc idl/source include/basic include/drawinglayer include/editeng include/sfx2 sfx2/source
Noel Grandin
noel.grandin at collabora.co.uk
Wed Jan 17 12:25:06 UTC 2018
basic/source/classes/sb.cxx | 20 +-
basic/source/classes/sbintern.cxx | 6
basic/source/classes/sbunoobj.cxx | 4
basic/source/classes/sbxmod.cxx | 42 ++---
basic/source/comp/codegen.cxx | 10 -
basic/source/inc/sbintern.hxx | 6
basic/source/inc/sbunoobj.hxx | 2
basic/source/inc/stdobj.hxx | 2
basic/source/runtime/methods.cxx | 7
basic/source/runtime/runtime.cxx | 7
basic/source/runtime/stdobj.cxx | 8 -
basic/source/sbx/sbxvar.cxx | 19 --
compilerplugins/clang/useuniqueptr.cxx | 3
cppcanvas/source/mtfrenderer/emfpbrush.cxx | 43 +----
cppcanvas/source/mtfrenderer/emfpbrush.hxx | 10 -
cppcanvas/source/mtfrenderer/emfppen.cxx | 6
cppcanvas/source/mtfrenderer/emfppen.hxx | 4
cppcanvas/source/mtfrenderer/emfpregion.cxx | 6
cppcanvas/source/mtfrenderer/emfpregion.hxx | 2
drawinglayer/source/primitive2d/svggradientprimitive2d.cxx | 7
drawinglayer/source/processor3d/zbufferprocessor3d.cxx | 13 -
drawinglayer/source/texture/texture3d.cxx | 15 -
drawinglayer/source/tools/emfpbrush.cxx | 51 +-----
drawinglayer/source/tools/emfpbrush.hxx | 10 -
drawinglayer/source/tools/emfppen.cxx | 6
drawinglayer/source/tools/emfppen.hxx | 4
hwpfilter/source/drawdef.h | 5
hwpfilter/source/drawing.h | 10 -
hwpfilter/source/hwpfile.cxx | 11 -
hwpfilter/source/hwpfile.h | 4
hwpfilter/source/hwpreader.cxx | 14 -
idl/inc/database.hxx | 2
idl/inc/globals.hxx | 7
idl/source/prj/command.cxx | 4
idl/source/prj/database.cxx | 4
idl/source/prj/globals.cxx | 2
include/basic/sbmod.hxx | 7
include/basic/sbxvar.hxx | 4
include/drawinglayer/primitive2d/svggradientprimitive2d.hxx | 2
include/drawinglayer/processor3d/zbufferprocessor3d.hxx | 5
include/drawinglayer/texture/texture3d.hxx | 6
include/editeng/outliner.hxx | 20 --
include/sfx2/childwin.hxx | 4
include/sfx2/lnkbase.hxx | 2
include/sfx2/request.hxx | 4
sfx2/source/appl/appdata.cxx | 4
sfx2/source/appl/childwin.cxx | 13 -
sfx2/source/appl/helpinterceptor.cxx | 20 --
sfx2/source/appl/helpinterceptor.hxx | 4
sfx2/source/appl/impldde.cxx | 23 +-
sfx2/source/appl/impldde.hxx | 6
sfx2/source/appl/lnkbase2.cxx | 6
sfx2/source/appl/module.cxx | 36 ++--
sfx2/source/control/itemdel.cxx | 4
sfx2/source/control/request.cxx | 21 +-
sfx2/source/control/shell.cxx | 12 -
sfx2/source/dialog/filedlghelper.cxx | 4
sfx2/source/dialog/filedlgimpl.hxx | 2
sfx2/source/dialog/templdlg.cxx | 6
sfx2/source/doc/docfile.cxx | 95 +++++-------
sfx2/source/doc/doctemplates.cxx | 30 +--
sfx2/source/doc/guisaveas.cxx | 18 --
sfx2/source/explorer/nochaos.cxx | 12 -
sfx2/source/inc/appdata.hxx | 5
sfx2/source/inc/templdgi.hxx | 2
65 files changed, 306 insertions(+), 447 deletions(-)
New commits:
commit 0008af393325be8f33b9a68db6f04026ced93b10
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 16:13:43 2018 +0200
loplugin:useuniqueptr in SfxCommonTemplateDialog_Impl
Change-Id: I484cb863c054c71cb22b30d108c95692213c8451
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index dc2e7e47e882..c5b10206916d 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -861,7 +861,7 @@ SfxCommonTemplateDialog_Impl::~SfxCommonTemplateDialog_Impl()
EndListening(*pStyleSheetPool);
pStyleSheetPool = nullptr;
pTreeBox.disposeAndClear();
- delete pIdle;
+ pIdle.reset();
if ( m_pDeletionWatcher )
m_pDeletionWatcher->signal();
aFmtLb.disposeAndClear();
@@ -1402,7 +1402,7 @@ IMPL_LINK_NOARG( SfxCommonTemplateDialog_Impl, TimeOut, Timer *, void )
}
}
bDontUpdate=false;
- DELETEZ(pIdle);
+ pIdle.reset();
}
else
pIdle->Start();
@@ -1488,7 +1488,7 @@ void SfxCommonTemplateDialog_Impl::Notify(SfxBroadcaster& /*rBC*/, const SfxHint
{
if(!pIdle)
{
- pIdle=new Idle("SfxCommonTemplate");
+ pIdle.reset(new Idle("SfxCommonTemplate"));
pIdle->SetPriority(TaskPriority::LOWEST);
pIdle->SetInvokeHandler(LINK(this,SfxCommonTemplateDialog_Impl,TimeOut));
}
diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx
index 4a911d292003..381da18b8916 100644
--- a/sfx2/source/inc/templdgi.hxx
+++ b/sfx2/source/inc/templdgi.hxx
@@ -176,7 +176,7 @@ protected:
VclPtr<PopupMenu> mxMenu;
OString sLastItemIdent;
SfxModule* pModule;
- Idle* pIdle;
+ std::unique_ptr<Idle> pIdle;
SfxStyleFamilies* pStyleFamilies;
SfxTemplateItem* pFamilyState[MAX_FAMILIES];
commit 5911f4bded3fcb63cb89e1c52cdcfdb5a331e0fc
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 16:12:29 2018 +0200
loplugin:useuniqueptr in SfxMedium_Impl
Change-Id: Ifd973c243684cb0ed172f236c8cfd4dea9c3c653
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index e862a88ecabe..c61639c8ef93 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -198,8 +198,8 @@ public:
OUString m_aLogicName;
OUString m_aLongName;
- mutable SfxItemSet* m_pSet;
- mutable INetURLObject* m_pURLObj;
+ mutable std::unique_ptr<SfxItemSet> m_pSet;
+ mutable std::unique_ptr<INetURLObject> m_pURLObj;
std::shared_ptr<const SfxFilter> m_pFilter;
std::shared_ptr<const SfxFilter> m_pCustomFilter;
@@ -217,7 +217,7 @@ public:
uno::Sequence < util::RevisionTag > aVersions;
- ::utl::TempFile* pTempFile;
+ std::unique_ptr<::utl::TempFile> pTempFile;
uno::Reference<embed::XStorage> xStorage;
uno::Reference<embed::XStorage> m_xZipStorage;
@@ -290,9 +290,9 @@ SfxMedium_Impl::~SfxMedium_Impl()
{
aDoneLink.ClearPendingCall();
- delete pTempFile;
- delete m_pSet;
- delete m_pURLObj;
+ pTempFile.reset();
+ m_pSet.reset();
+ m_pURLObj.reset();
}
void SfxMedium::ResetError()
@@ -407,7 +407,7 @@ Reference < XContent > SfxMedium::GetContent() const
Reference < css::ucb::XCommandEnvironment > xEnv( static_cast< css::ucb::XCommandEnvironment* >(pCommandEnv), css::uno::UNO_QUERY );
- const SfxUnoAnyItem* pItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_CONTENT, false);
+ const SfxUnoAnyItem* pItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_CONTENT, false);
if ( pItem )
pItem->GetValue() >>= xContent;
@@ -791,7 +791,7 @@ void SfxMedium::SetEncryptionDataToStorage_Impl()
if ( pImpl->xStorage.is() && pImpl->m_pSet )
{
uno::Sequence< beans::NamedValue > aEncryptionData;
- if ( GetEncryptionData_Impl( pImpl->m_pSet, aEncryptionData ) )
+ if ( GetEncryptionData_Impl( pImpl->m_pSet.get(), aEncryptionData ) )
{
// replace the password with encryption data
pImpl->m_pSet->ClearItem( SID_PASSWORD );
@@ -1097,7 +1097,7 @@ void SfxMedium::LockOrigFileOnDemand( bool bLoading, bool bNoUI )
{
// the error should be set in case it is storing process
// or the document has been opened for editing explicitly
- const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet, SID_DOC_READONLY, false);
+ const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet.get(), SID_DOC_READONLY, false);
if ( !bLoading || (pReadOnlyItem && !pReadOnlyItem->GetValue()) )
SetError(ERRCODE_IO_ACCESSDENIED);
@@ -1300,7 +1300,7 @@ void SfxMedium::LockOrigFileOnDemand( bool bLoading, bool bNoUI )
{
// the error should be set in case it is storing process
// or the document has been opened for editing explicitly
- const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet, SID_DOC_READONLY, false);
+ const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet.get(), SID_DOC_READONLY, false);
if ( !bLoading || (pReadOnlyItem && !pReadOnlyItem->GetValue()) )
SetError(ERRCODE_IO_ACCESSDENIED);
@@ -1421,7 +1421,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage( bool bCreateTempIfNo )
GetVersionList();
}
- const SfxInt16Item* pVersion = SfxItemSet::GetItem<SfxInt16Item>(pImpl->m_pSet, SID_VERSION, false);
+ const SfxInt16Item* pVersion = SfxItemSet::GetItem<SfxInt16Item>(pImpl->m_pSet.get(), SID_VERSION, false);
bool bResetStorage = false;
if ( pVersion && pVersion->GetValue() )
@@ -1792,8 +1792,7 @@ void SfxMedium::TransactedTransferForFS_Impl( const INetURLObject& aSource,
if ( pImpl->pTempFile )
{
pImpl->pTempFile->EnableKillingFile();
- delete pImpl->pTempFile;
- pImpl->pTempFile = nullptr;
+ pImpl->pTempFile.reset();
}
}
else if ( bTransactStarted )
@@ -1899,7 +1898,7 @@ void SfxMedium::Transfer_Impl()
if (pImpl->m_aLogicName.startsWith("private:stream"))
{
// TODO/LATER: support storing to SID_STREAM
- const SfxUnoAnyItem* pOutStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_OUTPUTSTREAM, false);
+ const SfxUnoAnyItem* pOutStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_OUTPUTSTREAM, false);
if( pOutStreamItem && ( pOutStreamItem->GetValue() >>= rOutStream ) )
{
if ( pImpl->xStorage.is() )
@@ -1935,8 +1934,7 @@ void SfxMedium::Transfer_Impl()
if ( pImpl->pTempFile )
{
pImpl->pTempFile->EnableKillingFile();
- delete pImpl->pTempFile;
- pImpl->pTempFile = nullptr;
+ pImpl->pTempFile.reset();
}
}
catch( const Exception& )
@@ -2332,7 +2330,7 @@ void SfxMedium::GetLockingStream_Impl()
if ( GetURLObject().GetProtocol() == INetProtocol::File
&& !pImpl->m_xLockingStream.is() )
{
- const SfxUnoAnyItem* pWriteStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_STREAM, false);
+ const SfxUnoAnyItem* pWriteStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_STREAM, false);
if ( pWriteStreamItem )
pWriteStreamItem->GetValue() >>= pImpl->m_xLockingStream;
@@ -2375,8 +2373,8 @@ void SfxMedium::GetMedium_Impl()
Reference< css::task::XInteractionHandler > xInteractionHandler = GetInteractionHandler();
//TODO/MBA: need support for SID_STREAM
- const SfxUnoAnyItem* pWriteStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_STREAM, false);
- const SfxUnoAnyItem* pInStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_INPUTSTREAM, false);
+ const SfxUnoAnyItem* pWriteStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_STREAM, false);
+ const SfxUnoAnyItem* pInStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_INPUTSTREAM, false);
if ( pWriteStreamItem )
{
pWriteStreamItem->GetValue() >>= pImpl->xStream;
@@ -2555,7 +2553,7 @@ void SfxMedium::Init_Impl()
// TODO/LATER: handle lifetime of storages
pImpl->bDisposeStorage = false;
- const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet, SID_DOC_SALVAGE, false);
+ const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet.get(), SID_DOC_SALVAGE, false);
if ( pSalvageItem && pSalvageItem->GetValue().isEmpty() )
{
pSalvageItem = nullptr;
@@ -2592,13 +2590,13 @@ void SfxMedium::Init_Impl()
if ( pSalvageItem && !pSalvageItem->GetValue().isEmpty() )
{
pImpl->m_aLogicName = pSalvageItem->GetValue();
- DELETEZ( pImpl->m_pURLObj );
+ pImpl->m_pURLObj.reset();
pImpl->m_bSalvageMode = true;
}
// in case output stream is by mistake here
// clear the reference
- const SfxUnoAnyItem* pOutStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_OUTPUTSTREAM, false);
+ const SfxUnoAnyItem* pOutStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_OUTPUTSTREAM, false);
if( pOutStreamItem
&& ( !( pOutStreamItem->GetValue() >>= rOutStream )
|| !pImpl->m_aLogicName.startsWith("private:stream")) )
@@ -2610,7 +2608,7 @@ void SfxMedium::Init_Impl()
if (!pImpl->m_aLogicName.isEmpty())
{
// if the logic name is set it should be set in MediaDescriptor as well
- const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet, SID_FILE_NAME, false);
+ const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet.get(), SID_FILE_NAME, false);
if ( !pFileNameItem )
{
// let the ItemSet be created if necessary
@@ -2659,7 +2657,7 @@ SfxMedium::GetInteractionHandler( bool bGetAlways )
if ( pImpl->m_pSet )
{
css::uno::Reference< css::task::XInteractionHandler > xHandler;
- const SfxUnoAnyItem* pHandler = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet, SID_INTERACTIONHANDLER, false);
+ const SfxUnoAnyItem* pHandler = SfxItemSet::GetItem<SfxUnoAnyItem>(pImpl->m_pSet.get(), SID_INTERACTIONHANDLER, false);
if ( pHandler && (pHandler->GetValue() >>= xHandler) && xHandler.is() )
return xHandler;
}
@@ -2903,7 +2901,7 @@ void SfxMedium::SetName( const OUString& aNameP, bool bSetOrigURL )
if( bSetOrigURL )
pImpl->aOrigURL = aNameP;
pImpl->m_aLogicName = aNameP;
- DELETEZ( pImpl->m_pURLObj );
+ pImpl->m_pURLObj.reset();
pImpl->aContent = ::ucbhelper::Content();
Init_Impl();
}
@@ -2919,11 +2917,7 @@ void SfxMedium::SetPhysicalName_Impl( const OUString& rNameP )
{
if ( rNameP != pImpl->m_aName )
{
- if( pImpl->pTempFile )
- {
- delete pImpl->pTempFile;
- pImpl->pTempFile = nullptr;
- }
+ pImpl->pTempFile.reset();
if ( !pImpl->m_aName.isEmpty() || !rNameP.isEmpty() )
pImpl->aContent = ::ucbhelper::Content();
@@ -2950,11 +2944,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;
- pImpl->pTempFile = nullptr;
+ pTmpFile = std::move(pImpl->pTempFile);
pImpl->m_aName.clear();
}
@@ -2965,17 +2958,15 @@ void SfxMedium::CompleteReOpen()
if ( pImpl->pTempFile )
{
pImpl->pTempFile->EnableKillingFile();
- delete pImpl->pTempFile;
+ pImpl->pTempFile.reset();
}
- pImpl->pTempFile = pTmpFile;
+ pImpl->pTempFile = std::move(pTmpFile);
if ( pImpl->pTempFile )
pImpl->m_aName = pImpl->pTempFile->GetFileName();
}
else if (pTmpFile)
{
pTmpFile->EnableKillingFile();
- delete pTmpFile;
-
}
pImpl->bUseInteractionHandler = bUseInteractionHandler;
@@ -2984,7 +2975,7 @@ void SfxMedium::CompleteReOpen()
SfxMedium::SfxMedium(const OUString &rName, StreamMode nOpenMode, std::shared_ptr<const SfxFilter> pFilter, SfxItemSet *pInSet) :
pImpl(new SfxMedium_Impl)
{
- pImpl->m_pSet = pInSet;
+ pImpl->m_pSet.reset( pInSet );
pImpl->m_pFilter = std::move(pFilter);
pImpl->m_aLogicName = rName;
pImpl->m_nStorOpenMode = nOpenMode;
@@ -2994,7 +2985,7 @@ SfxMedium::SfxMedium(const OUString &rName, StreamMode nOpenMode, std::shared_pt
SfxMedium::SfxMedium(const OUString &rName, const OUString &rReferer, StreamMode nOpenMode, std::shared_ptr<const SfxFilter> pFilter, SfxItemSet *pInSet) :
pImpl(new SfxMedium_Impl)
{
- pImpl->m_pSet = pInSet;
+ pImpl->m_pSet.reset( pInSet );
SfxItemSet * s = GetItemSet();
if (s->GetItem(SID_REFERER) == nullptr) {
s->Put(SfxStringItem(SID_REFERER, rReferer));
@@ -3009,7 +3000,7 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
pImpl(new SfxMedium_Impl)
{
SfxAllItemSet *pParams = new SfxAllItemSet( SfxGetpApp()->GetPool() );
- pImpl->m_pSet = pParams;
+ pImpl->m_pSet.reset( pParams );
TransformParameters( SID_OPENDOC, aArgs, *pParams );
OUString aFilterProvider, aFilterName;
@@ -3034,7 +3025,7 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
pImpl->m_pFilter = pImpl->m_pCustomFilter;
}
- const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet, SID_DOC_SALVAGE, false);
+ const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet.get(), SID_DOC_SALVAGE, false);
if( pSalvageItem )
{
// QUESTION: there is some treatment of Salvage in Init_Impl; align!
@@ -3043,7 +3034,7 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
// if an URL is provided in SalvageItem that means that the FileName refers to a temporary file
// that must be copied here
- const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet, SID_FILE_NAME, false);
+ const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet.get(), SID_FILE_NAME, false);
if (!pFileNameItem) throw uno::RuntimeException();
OUString aNewTempFileURL = SfxMedium::CreateTempCopyWithExt( pFileNameItem->GetValue() );
if ( !aNewTempFileURL.isEmpty() )
@@ -3060,11 +3051,11 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
}
}
- const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet, SID_DOC_READONLY, false);
+ const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet.get(), SID_DOC_READONLY, false);
if ( pReadOnlyItem && pReadOnlyItem->GetValue() )
pImpl->m_bOriginallyLoadedReadOnly = true;
- const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet, SID_FILE_NAME, false);
+ const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImpl->m_pSet.get(), SID_FILE_NAME, false);
if (!pFileNameItem) throw uno::RuntimeException();
pImpl->m_aLogicName = pFileNameItem->GetValue();
pImpl->m_nStorOpenMode = pImpl->m_bOriginallyLoadedReadOnly
@@ -3140,7 +3131,7 @@ const INetURLObject& SfxMedium::GetURLObject() const
{
if (!pImpl->m_pURLObj)
{
- pImpl->m_pURLObj = new INetURLObject( pImpl->m_aLogicName );
+ pImpl->m_pURLObj.reset( new INetURLObject( pImpl->m_aLogicName ) );
pImpl->m_pURLObj->SetMark("");
}
@@ -3186,8 +3177,8 @@ SfxItemSet* SfxMedium::GetItemSet() const
{
// this method *must* return an ItemSet, returning NULL can cause crashes
if (!pImpl->m_pSet)
- pImpl->m_pSet = new SfxAllItemSet( SfxGetpApp()->GetPool() );
- return pImpl->m_pSet;
+ pImpl->m_pSet.reset( new SfxAllItemSet( SfxGetpApp()->GetPool() ) );
+ return pImpl->m_pSet.get();
}
@@ -3406,7 +3397,7 @@ void SfxMedium::CreateTempFile( bool bReplace )
if ( !bReplace )
return;
- DELETEZ( pImpl->pTempFile );
+ pImpl->pTempFile.reset();
pImpl->m_aName.clear();
}
@@ -3421,7 +3412,7 @@ void SfxMedium::CreateTempFile( bool bReplace )
// Doesn't make sense.
aLogicBase.clear();
}
- pImpl->pTempFile = new ::utl::TempFile(aLogicBase.isEmpty() ? nullptr : &aLogicBase);
+ pImpl->pTempFile.reset( new ::utl::TempFile(aLogicBase.isEmpty() ? nullptr : &aLogicBase) );
pImpl->pTempFile->EnableKillingFile();
pImpl->m_aName = pImpl->pTempFile->GetFileName();
OUString aTmpURL = pImpl->pTempFile->GetURL();
@@ -3517,9 +3508,7 @@ void SfxMedium::CreateTempFile( bool bReplace )
void SfxMedium::CreateTempFileNoCopy()
{
// this call always replaces the existing temporary file
- delete pImpl->pTempFile;
-
- pImpl->pTempFile = new ::utl::TempFile();
+ pImpl->pTempFile.reset(new ::utl::TempFile());
pImpl->pTempFile->EnableKillingFile();
pImpl->m_aName = pImpl->pTempFile->GetFileName();
if ( pImpl->m_aName.isEmpty() )
@@ -3821,7 +3810,7 @@ OUString SfxMedium::SwitchDocumentToTempFile()
// remove the readonly state
bool bWasReadonly = false;
pImpl->m_nStorOpenMode = SFX_STREAM_READWRITE;
- const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet, SID_DOC_READONLY, false);
+ const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImpl->m_pSet.get(), SID_DOC_READONLY, false);
if ( pReadOnlyItem && pReadOnlyItem->GetValue() )
bWasReadonly = true;
GetItemSet()->ClearItem( SID_DOC_READONLY );
commit fc5df8fe80935785ee47d23b9ba7d878f438b2f8
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 16:05:49 2018 +0200
loplugin:useuniqueptr in ModelData_Impl
Change-Id: I66866ed1698fafe59ba31f99df09fb792da410e3
diff --git a/compilerplugins/clang/useuniqueptr.cxx b/compilerplugins/clang/useuniqueptr.cxx
index 62d462d2d66d..56b669a5e1e1 100644
--- a/compilerplugins/clang/useuniqueptr.cxx
+++ b/compilerplugins/clang/useuniqueptr.cxx
@@ -235,6 +235,9 @@ void UseUniquePtr::CheckForForLoopDelete(const CXXDestructorDecl* destructorDecl
StringRef aFileName = compiler.getSourceManager().getFilename(compiler.getSourceManager().getSpellingLoc(fieldDecl->getLocStart()));
if (loplugin::hasPathnamePrefix(aFileName, WORKDIR))
continue;
+ // the std::vector is being passed to another class
+ if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/sfx2/source/explorer/nochaos.cxx"))
+ return;
report(
DiagnosticsEngine::Warning,
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 4240f62f16e2..4f878d32f14d 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -275,8 +275,8 @@ class ModelData_Impl
uno::Reference< frame::XStorable2 > m_xStorable2;
OUString m_aModuleName;
- ::comphelper::SequenceAsHashMap* m_pDocumentPropsHM;
- ::comphelper::SequenceAsHashMap* m_pModulePropsHM;
+ std::unique_ptr<::comphelper::SequenceAsHashMap> m_pDocumentPropsHM;
+ std::unique_ptr<::comphelper::SequenceAsHashMap> m_pModulePropsHM;
::comphelper::SequenceAsHashMap m_aMediaDescrHM;
@@ -381,18 +381,14 @@ ModelData_Impl::ModelData_Impl( SfxStoringHelper& aOwner,
ModelData_Impl::~ModelData_Impl()
{
FreeDocumentProps();
- delete m_pDocumentPropsHM;
- delete m_pModulePropsHM;
+ m_pDocumentPropsHM.reset();
+ m_pModulePropsHM.reset();
}
void ModelData_Impl::FreeDocumentProps()
{
- if ( m_pDocumentPropsHM )
- {
- delete m_pDocumentPropsHM;
- m_pDocumentPropsHM = nullptr;
- }
+ m_pDocumentPropsHM.reset();
}
@@ -430,7 +426,7 @@ uno::Reference< frame::XStorable2 > const & ModelData_Impl::GetStorable2()
const ::comphelper::SequenceAsHashMap& ModelData_Impl::GetDocProps()
{
if ( !m_pDocumentPropsHM )
- m_pDocumentPropsHM = new ::comphelper::SequenceAsHashMap( GetModel()->getArgs() );
+ m_pDocumentPropsHM.reset( new ::comphelper::SequenceAsHashMap( GetModel()->getArgs() ) );
return *m_pDocumentPropsHM;
}
@@ -457,7 +453,7 @@ const ::comphelper::SequenceAsHashMap& ModelData_Impl::GetModuleProps()
m_pOwner->GetModuleManager()->getByName( GetModuleName() ) >>= aModuleProps;
if ( !aModuleProps.getLength() )
throw uno::RuntimeException(); // TODO;
- m_pModulePropsHM = new ::comphelper::SequenceAsHashMap( aModuleProps );
+ m_pModulePropsHM.reset( new ::comphelper::SequenceAsHashMap( aModuleProps ) );
}
return *m_pModulePropsHM;
commit 9779cd8715e2e0f62d454f37b8d0ffa140d70e64
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 16:05:30 2018 +0200
loplugin:useuniqueptr in FileDialogHelper_Impl
Change-Id: I91f831be99284b61385cee42dc59efd0cf7f45ba
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index f19ea1488b63..52b3f5fa395d 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -1141,7 +1141,7 @@ FileDialogHelper_Impl::~FileDialogHelper_Impl()
Application::RemoveUserEvent( mnPostUserEventId );
mnPostUserEventId = nullptr;
- delete mpGraphicFilter;
+ mpGraphicFilter.reset();
if ( mbDeleteMatcher )
delete mpMatcher;
@@ -1841,7 +1841,7 @@ void FileDialogHelper_Impl::addGraphicFilter()
return;
// create the list of filters
- mpGraphicFilter = new GraphicFilter;
+ mpGraphicFilter.reset( new GraphicFilter );
sal_uInt16 i, j, nCount = mpGraphicFilter->GetImportFormatCount();
// compute the extension string for all known import filters
diff --git a/sfx2/source/dialog/filedlgimpl.hxx b/sfx2/source/dialog/filedlgimpl.hxx
index b7aae374dfcd..38a894e0d42e 100644
--- a/sfx2/source/dialog/filedlgimpl.hxx
+++ b/sfx2/source/dialog/filedlgimpl.hxx
@@ -50,7 +50,7 @@ namespace sfx2
std::vector< css::beans::StringPair > maFilters;
SfxFilterMatcher* mpMatcher;
- GraphicFilter* mpGraphicFilter;
+ std::unique_ptr<GraphicFilter> mpGraphicFilter;
FileDialogHelper* mpAntiImpl;
VclPtr<vcl::Window> mpPreferredParentWindow;
commit 623b56fd6f841617444de7f324bcbb0546d35fb3
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:58:39 2018 +0200
loplugin:useuniqueptr in CntStaticPoolDefaults_Impl
Change-Id: I8d7766d473499b4d154debc1aafaf03359078aa3
diff --git a/sfx2/source/explorer/nochaos.cxx b/sfx2/source/explorer/nochaos.cxx
index 2ba551d4662a..edb1a560765d 100644
--- a/sfx2/source/explorer/nochaos.cxx
+++ b/sfx2/source/explorer/nochaos.cxx
@@ -37,7 +37,7 @@ class CntItemPool;
class CntStaticPoolDefaults_Impl
{
static const sal_uInt32 m_nItems = 1;
- std::vector<SfxPoolItem*>* m_pDefaults;
+ std::vector<SfxPoolItem*> mvDefaults;
std::unique_ptr<SfxItemInfo[]> m_pItemInfos;
private:
@@ -49,7 +49,7 @@ public:
CntStaticPoolDefaults_Impl(const CntStaticPoolDefaults_Impl&) = delete;
CntStaticPoolDefaults_Impl& operator=(const CntStaticPoolDefaults_Impl&) = delete;
- std::vector<SfxPoolItem*>* GetDefaults() const { return m_pDefaults; }
+ std::vector<SfxPoolItem*>* GetDefaults() { return &mvDefaults; }
const SfxItemInfo* GetItemInfos() const { return m_pItemInfos.get(); }
};
@@ -161,7 +161,7 @@ inline void CntStaticPoolDefaults_Impl::Insert(
{
sal_uInt16 nPos = pItem->Which() - WID_CHAOS_START;
- (*m_pDefaults)[ nPos ] = pItem;
+ mvDefaults[ nPos ] = pItem;
m_pItemInfos[ nPos ]._nSID = 0;
m_pItemInfos[ nPos ]._bPoolable = true;
}
@@ -170,14 +170,12 @@ inline void CntStaticPoolDefaults_Impl::Insert(
CntStaticPoolDefaults_Impl::~CntStaticPoolDefaults_Impl()
{
for ( sal_uInt32 n = 0; n < m_nItems; ++n )
- delete (*m_pDefaults)[ n ];
-
- delete m_pDefaults;
+ delete mvDefaults[ n ];
}
CntStaticPoolDefaults_Impl::CntStaticPoolDefaults_Impl()
-: m_pDefaults( new std::vector<SfxPoolItem*>( m_nItems, nullptr ) ),
+: mvDefaults( m_nItems, nullptr ),
m_pItemInfos( new SfxItemInfo [ m_nItems ] )
{
memset( m_pItemInfos.get(), 0, sizeof( SfxItemInfo ) * m_nItems );
commit 128a2f154bb64189bf740379e86e948a7ec90395
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:49:15 2018 +0200
loplugin:useuniqueptr in GroupData_Impl
Change-Id: Icddaf78a58b74338ac763c12c8ac06f464986cac
diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
index 61bf957b5713..80d6ce983667 100644
--- a/sfx2/source/doc/doctemplates.cxx
+++ b/sfx2/source/doc/doctemplates.cxx
@@ -346,7 +346,7 @@ public:
class GroupData_Impl
{
- vector< DocTemplates_EntryData_Impl* > maEntries;
+ std::vector< std::unique_ptr<DocTemplates_EntryData_Impl> > maEntries;
OUString maTitle;
OUString maHierarchyURL;
OUString maTargetURL;
@@ -355,7 +355,6 @@ class GroupData_Impl
public:
explicit GroupData_Impl( const OUString& rTitle );
- ~GroupData_Impl();
void setInUse() { mbInUse = true; }
void setHierarchy( bool bInHierarchy ) { mbInHierarchy = bInHierarchy; }
@@ -373,7 +372,7 @@ public:
const OUString& rType,
const OUString& rHierURL );
size_t count() { return maEntries.size(); }
- DocTemplates_EntryData_Impl* getEntry( size_t nPos ) { return maEntries[ nPos ]; }
+ DocTemplates_EntryData_Impl* getEntry( size_t nPos ) { return maEntries[ nPos ].get(); }
};
@@ -2641,14 +2640,6 @@ GroupData_Impl::GroupData_Impl( const OUString& rTitle )
}
-GroupData_Impl::~GroupData_Impl()
-{
- for (DocTemplates_EntryData_Impl* p : maEntries)
- delete p;
- maEntries.clear();
-}
-
-
DocTemplates_EntryData_Impl* GroupData_Impl::addEntry( const OUString& rTitle,
const OUString& rTargetURL,
const OUString& rType,
@@ -2657,9 +2648,9 @@ DocTemplates_EntryData_Impl* GroupData_Impl::addEntry( const OUString& rTitle,
DocTemplates_EntryData_Impl* pData = nullptr;
bool EntryFound = false;
- for (DocTemplates_EntryData_Impl* p : maEntries)
+ for (auto const & p : maEntries)
{
- pData = p;
+ pData = p.get();
if ( pData->getTitle() == rTitle )
{
EntryFound = true;
@@ -2677,7 +2668,7 @@ DocTemplates_EntryData_Impl* GroupData_Impl::addEntry( const OUString& rTitle,
pData->setHierarchyURL( rHierURL );
pData->setHierarchy( true );
}
- maEntries.push_back( pData );
+ maEntries.emplace_back( pData );
}
else
{
commit 77c15a95196d5fd8873901cdf6dccc53898b026b
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:47:16 2018 +0200
loplugin:useuniqueptr in SfxDocTplService_Impl
Change-Id: Iacda2920f632a6f21d852d843e97086a23479bbd
diff --git a/sfx2/source/doc/doctemplates.cxx b/sfx2/source/doc/doctemplates.cxx
index eee0ac0363ac..61bf957b5713 100644
--- a/sfx2/source/doc/doctemplates.cxx
+++ b/sfx2/source/doc/doctemplates.cxx
@@ -185,7 +185,7 @@ class SfxDocTplService_Impl
Sequence< OUString > maTemplateDirs;
Sequence< OUString > maInternalTemplateDirs;
OUString maRootURL;
- std::vector< NamePair_Impl* > maNames;
+ std::vector< std::unique_ptr<NamePair_Impl> > maNames;
lang::Locale maLocale;
Content maRootContent;
bool mbIsInitialized : 1;
@@ -506,11 +506,11 @@ void SfxDocTplService_Impl::readFolderList()
const size_t nCount = std::min(SAL_N_ELEMENTS(TEMPLATE_SHORT_NAMES_ARY), SAL_N_ELEMENTS(TEMPLATE_LONG_NAMES_ARY));
for (size_t i = 0; i < nCount; ++i)
{
- NamePair_Impl* pPair = new NamePair_Impl;
+ std::unique_ptr<NamePair_Impl> pPair( new NamePair_Impl );
pPair->maShortName = OUString::createFromAscii(TEMPLATE_SHORT_NAMES_ARY[i]);
pPair->maLongName = SfxResId(TEMPLATE_LONG_NAMES_ARY[i]);
- maNames.push_back( pPair );
+ maNames.push_back( std::move(pPair) );
}
}
@@ -519,7 +519,7 @@ OUString SfxDocTplService_Impl::getLongName( const OUString& rShortName )
{
OUString aRet;
- for (NamePair_Impl* pPair : maNames)
+ for (auto const & pPair : maNames)
{
if ( pPair->maShortName == rShortName )
{
@@ -1086,9 +1086,6 @@ SfxDocTplService_Impl::SfxDocTplService_Impl( const uno::Reference< XComponentCo
SfxDocTplService_Impl::~SfxDocTplService_Impl()
{
::osl::MutexGuard aGuard( maMutex );
-
- for (NamePair_Impl* p : maNames)
- delete p;
maNames.clear();
}
commit 3e6c792d25738af0944254682c51765d44032a99
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:45:13 2018 +0200
loplugin:useuniqueptr in SfxShell_Impl
Change-Id: If59142c2d55da5f3ccf2de101dbd9f18a8bda84c
diff --git a/sfx2/source/control/shell.cxx b/sfx2/source/control/shell.cxx
index 5f0867e94cae..2f25891ce5e5 100644
--- a/sfx2/source/control/shell.cxx
+++ b/sfx2/source/control/shell.cxx
@@ -62,8 +62,8 @@ struct SfxShell_Impl: public SfxBroadcaster
SfxRepeatTarget* pRepeatTarget; // SbxObjectRef xParent;
bool bActive;
SfxDisableFlags nDisableFlags;
- svtools::AsynchronLink* pExecuter;
- svtools::AsynchronLink* pUpdater;
+ std::unique_ptr<svtools::AsynchronLink> pExecuter;
+ std::unique_ptr<svtools::AsynchronLink> pUpdater;
std::vector<std::unique_ptr<SfxSlot> > aSlotArr;
css::uno::Sequence < css::embed::VerbDescriptor > aVerbList;
@@ -80,7 +80,7 @@ struct SfxShell_Impl: public SfxBroadcaster
{
}
- virtual ~SfxShell_Impl() override { delete pExecuter; delete pUpdater;}
+ virtual ~SfxShell_Impl() override { pExecuter.reset(); pUpdater.reset();}
};
@@ -400,8 +400,8 @@ void SfxShell::ExecuteSlot( SfxRequest& rReq, bool bAsync )
else
{
if( !pImpl->pExecuter )
- pImpl->pExecuter = new svtools::AsynchronLink(
- Link<void*,void>( this, ShellCall_Impl ) );
+ pImpl->pExecuter.reset( new svtools::AsynchronLink(
+ Link<void*,void>( this, ShellCall_Impl ) ) );
pImpl->pExecuter->Call( new SfxRequest( rReq ) );
}
}
@@ -654,7 +654,7 @@ void SfxShell::UIFeatureChanged()
// something my get stuck in the bunkered tools. Asynchronous call to
// prevent recursion.
if ( !pImpl->pUpdater )
- pImpl->pUpdater = new svtools::AsynchronLink( Link<void*,void>( this, DispatcherUpdate_Impl ) );
+ pImpl->pUpdater.reset( new svtools::AsynchronLink( Link<void*,void>( this, DispatcherUpdate_Impl ) ) );
// Multiple views allowed
pImpl->pUpdater->Call( pFrame->GetDispatcher(), true );
commit 4ae318ad0d076bdfdd42f8e1fcff27dc588b3a78
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:43:05 2018 +0200
loplugin:useuniqueptr in SfxModule_Impl
Change-Id: I218cd34aefcf8bfbc8a52379fb1e15ec2ef3ac31
diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx
index 202a4391f5ad..38e9db653104 100644
--- a/sfx2/source/appl/module.cxx
+++ b/sfx2/source/appl/module.cxx
@@ -44,10 +44,10 @@ class SfxModule_Impl
{
public:
- SfxSlotPool* pSlotPool;
- SfxTbxCtrlFactArr_Impl* pTbxCtrlFac;
- SfxStbCtrlFactArr_Impl* pStbCtrlFac;
- SfxChildWinFactArr_Impl* pFactArr;
+ std::unique_ptr<SfxSlotPool> pSlotPool;
+ std::unique_ptr<SfxTbxCtrlFactArr_Impl> pTbxCtrlFac;
+ std::unique_ptr<SfxStbCtrlFactArr_Impl> pStbCtrlFac;
+ std::unique_ptr<SfxChildWinFactArr_Impl> pFactArr;
OString maResName;
SfxModule_Impl();
@@ -61,10 +61,10 @@ SfxModule_Impl::SfxModule_Impl()
SfxModule_Impl::~SfxModule_Impl()
{
- delete pSlotPool;
- delete pTbxCtrlFac;
- delete pStbCtrlFac;
- delete pFactArr;
+ pSlotPool.reset();
+ pTbxCtrlFac.reset();
+ pStbCtrlFac.reset();
+ pFactArr.reset();
}
SFX_IMPL_SUPERCLASS_INTERFACE(SfxModule, SfxShell)
@@ -84,11 +84,7 @@ void SfxModule::Construct_Impl(const OString& rResName)
{
SfxApplication *pApp = SfxApplication::GetOrCreate();
pImpl = new SfxModule_Impl;
- pImpl->pSlotPool = new SfxSlotPool(&pApp->GetAppSlotPool_Impl());
-
- pImpl->pTbxCtrlFac=nullptr;
- pImpl->pStbCtrlFac=nullptr;
- pImpl->pFactArr=nullptr;
+ pImpl->pSlotPool.reset( new SfxSlotPool(&pApp->GetAppSlotPool_Impl()) );
pImpl->maResName = rResName;
SetPool( &pApp->GetPool() );
@@ -110,7 +106,7 @@ std::locale SfxModule::GetResLocale() const
SfxSlotPool* SfxModule::GetSlotPool() const
{
- return pImpl->pSlotPool;
+ return pImpl->pSlotPool.get();
}
@@ -119,7 +115,7 @@ void SfxModule::RegisterChildWindow(SfxChildWinFactory *pFact)
DBG_ASSERT( pImpl, "No real Module!" );
if (!pImpl->pFactArr)
- pImpl->pFactArr = new SfxChildWinFactArr_Impl;
+ pImpl->pFactArr.reset( new SfxChildWinFactArr_Impl );
for (size_t nFactory=0; nFactory<pImpl->pFactArr->size(); ++nFactory)
{
@@ -138,7 +134,7 @@ void SfxModule::RegisterChildWindow(SfxChildWinFactory *pFact)
void SfxModule::RegisterToolBoxControl( const SfxTbxCtrlFactory& rFact )
{
if (!pImpl->pTbxCtrlFac)
- pImpl->pTbxCtrlFac = new SfxTbxCtrlFactArr_Impl;
+ pImpl->pTbxCtrlFac.reset( new SfxTbxCtrlFactArr_Impl );
#ifdef DBG_UTIL
for ( size_t n=0; n<pImpl->pTbxCtrlFac->size(); n++ )
@@ -159,7 +155,7 @@ void SfxModule::RegisterToolBoxControl( const SfxTbxCtrlFactory& rFact )
void SfxModule::RegisterStatusBarControl( const SfxStbCtrlFactory& rFact )
{
if (!pImpl->pStbCtrlFac)
- pImpl->pStbCtrlFac = new SfxStbCtrlFactArr_Impl;
+ pImpl->pStbCtrlFac.reset( new SfxStbCtrlFactArr_Impl );
#ifdef DBG_UTIL
for ( size_t n=0; n<pImpl->pStbCtrlFac->size(); n++ )
@@ -179,18 +175,18 @@ void SfxModule::RegisterStatusBarControl( const SfxStbCtrlFactory& rFact )
SfxTbxCtrlFactArr_Impl* SfxModule::GetTbxCtrlFactories_Impl() const
{
- return pImpl->pTbxCtrlFac;
+ return pImpl->pTbxCtrlFac.get();
}
SfxStbCtrlFactArr_Impl* SfxModule::GetStbCtrlFactories_Impl() const
{
- return pImpl->pStbCtrlFac;
+ return pImpl->pStbCtrlFac.get();
}
SfxChildWinFactArr_Impl* SfxModule::GetChildWinFactories_Impl() const
{
- return pImpl->pFactArr;
+ return pImpl->pFactArr.get();
}
VclPtr<SfxTabPage> SfxModule::CreateTabPage( sal_uInt16, vcl::Window*, const SfxItemSet& )
commit 177a44100b7dc571c00996fbdffe5258ab174311
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:38:18 2018 +0200
loplugin:useuniqueptr in SfxChildWindowContext
Change-Id: Ida7807742f298a2e8acedd4d5edf404c8b3f6440
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index f68fa9fbf740..3059d38a5cbb 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -148,7 +148,7 @@ class SFX2_DLLPUBLIC SfxChildWindow
VclPtr<vcl::Window> pWindow; // actual contents
SfxChildAlignment eChildAlignment; // Current css::drawing::Alignment
std::unique_ptr< SfxChildWindow_Impl> pImpl; // Implementation data
- SfxChildWindowContext* pContext; // With context-sensitive ChildWindows:
+ std::unique_ptr<SfxChildWindowContext> pContext; // With context-sensitive ChildWindows:
// Another window in pWindow
SAL_DLLPRIVATE void ClearWorkwin();
@@ -206,7 +206,7 @@ public:
SAL_DLLPRIVATE SfxChildWindowContext*
GetContext_Impl() const
- { return pContext; }
+ { return pContext.get(); }
SAL_DLLPRIVATE void SetFactory_Impl( SfxChildWinFactory* );
};
diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx
index c6f56ee27a78..372d722bdfa2 100644
--- a/sfx2/source/appl/childwin.cxx
+++ b/sfx2/source/appl/childwin.cxx
@@ -193,8 +193,7 @@ void SfxChildWindow::ClearWorkwin()
SfxChildWindow::~SfxChildWindow()
{
- delete pContext;
- pContext = nullptr;
+ pContext.reset();
ClearWorkwin();
pWindow.disposeAndClear();
}
@@ -420,7 +419,7 @@ void SfxChildWindow::InitializeChildWinFactory_Impl(sal_uInt16 nId, SfxChildWinI
void SfxChildWindow::CreateContext( sal_uInt16 nContextId, SfxBindings& rBindings )
{
- SfxChildWindowContext *pCon = nullptr;
+ std::unique_ptr<SfxChildWindowContext> pCon;
SfxChildWinFactory* pFact=nullptr;
SfxApplication *pApp = SfxGetpApp();
SfxDispatcher *pDisp = rBindings.GetDispatcher_Impl();
@@ -447,7 +446,7 @@ void SfxChildWindow::CreateContext( sal_uInt16 nContextId, SfxBindings& rBinding
if ( pConFact->nContextId == nContextId )
{
SfxChildWinInfo aInfo = pFact->aInfo;
- pCon = pConFact->pCtor( GetWindow(), &rBindings, &aInfo );
+ pCon.reset( pConFact->pCtor( GetWindow(), &rBindings, &aInfo ) );
pCon->nContextId = pConFact->nContextId;
pImpl->pContextModule = pMod;
}
@@ -478,7 +477,7 @@ void SfxChildWindow::CreateContext( sal_uInt16 nContextId, SfxBindings& rBinding
if ( pConFact->nContextId == nContextId )
{
SfxChildWinInfo aInfo = pFact->aInfo;
- pCon = pConFact->pCtor( GetWindow(), &rBindings, &aInfo );
+ pCon.reset( pConFact->pCtor( GetWindow(), &rBindings, &aInfo ) );
pCon->nContextId = pConFact->nContextId;
pImpl->pContextModule = nullptr;
}
@@ -495,9 +494,7 @@ void SfxChildWindow::CreateContext( sal_uInt16 nContextId, SfxBindings& rBinding
return;
}
- if ( pContext )
- delete( pContext );
- pContext = pCon;
+ pContext = std::move( pCon );
pContext->GetWindow()->SetSizePixel( pWindow->GetOutputSizePixel() );
pContext->GetWindow()->Show();
}
commit add35c57d462ed3a2788367eb8e6e7cd9a09ff44
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:28:46 2018 +0200
loplugin:useuniqueptr in HelpInterceptor_Impl
Change-Id: I75c1ca2d6b0e03604bb6c96d2613261a1a05b988
diff --git a/sfx2/source/appl/helpinterceptor.cxx b/sfx2/source/appl/helpinterceptor.cxx
index 03f81a25e358..a41fc472a02b 100644
--- a/sfx2/source/appl/helpinterceptor.cxx
+++ b/sfx2/source/appl/helpinterceptor.cxx
@@ -47,29 +47,20 @@ HelpInterceptor_Impl::HelpInterceptor_Impl() :
HelpInterceptor_Impl::~HelpInterceptor_Impl()
{
- if ( m_pHistory )
- {
- for (HelpHistoryEntry_Impl* p : *m_pHistory)
- delete p;
- delete m_pHistory;
- }
}
void HelpInterceptor_Impl::addURL( const OUString& rURL )
{
if ( !m_pHistory )
- m_pHistory = new HelpHistoryList_Impl;
+ m_pHistory.reset( new std::vector<std::unique_ptr<HelpHistoryEntry_Impl>> );
size_t nCount = m_pHistory->size();
if ( nCount && m_nCurPos < ( nCount - 1 ) )
{
for ( size_t i = nCount - 1; i > m_nCurPos; i-- )
{
- delete m_pHistory->at( i );
- HelpHistoryList_Impl::iterator it = m_pHistory->begin();
- ::std::advance( it, i );
- m_pHistory->erase( it );
+ m_pHistory->erase( m_pHistory->begin() + i );
}
}
Reference<XFrame> xFrame(m_xIntercepted, UNO_QUERY);
@@ -83,7 +74,7 @@ void HelpInterceptor_Impl::addURL( const OUString& rURL )
m_aCurrentURL = rURL;
Any aEmptyViewData;
- m_pHistory->push_back( new HelpHistoryEntry_Impl( rURL, aEmptyViewData ) );
+ m_pHistory->emplace_back( new HelpHistoryEntry_Impl( rURL, aEmptyViewData ) );
m_nCurPos = m_pHistory->size() - 1;
// TODO ?
if ( m_xListener.is() )
@@ -229,9 +220,8 @@ void SAL_CALL HelpInterceptor_Impl::dispatch(
if ( nPos < ULONG_MAX )
{
- HelpHistoryEntry_Impl* pEntry = m_pHistory->at( nPos );
- if ( pEntry )
- m_pWindow->loadHelpContent(pEntry->aURL, false); // false => don't add item to history again!
+ HelpHistoryEntry_Impl* pEntry = m_pHistory->at( nPos ).get();
+ m_pWindow->loadHelpContent(pEntry->aURL, false); // false => don't add item to history again!
}
m_pWindow->UpdateToolbox();
diff --git a/sfx2/source/appl/helpinterceptor.hxx b/sfx2/source/appl/helpinterceptor.hxx
index 41d9665f264b..460e480329b4 100644
--- a/sfx2/source/appl/helpinterceptor.hxx
+++ b/sfx2/source/appl/helpinterceptor.hxx
@@ -39,8 +39,6 @@ struct HelpHistoryEntry_Impl
aURL( rURL ), aViewData(rViewData) {}
};
-typedef ::std::vector< HelpHistoryEntry_Impl* > HelpHistoryList_Impl;
-
class SfxHelpWindow_Impl;
class HelpInterceptor_Impl : public ::cppu::WeakImplHelper<
css::frame::XDispatchProviderInterceptor,
@@ -61,7 +59,7 @@ friend class SfxHelpWindow_Impl;
css::uno::Reference< css::frame::XStatusListener > m_xListener;
- HelpHistoryList_Impl* m_pHistory;
+ std::unique_ptr<std::vector<std::unique_ptr<HelpHistoryEntry_Impl>>> m_pHistory;
VclPtr<SfxHelpWindow_Impl> m_pWindow;
sal_uIntPtr m_nCurPos;
OUString m_aCurrentURL;
commit 50dcbaf1c586c7146948a0060818da17cfe14424
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:22:48 2018 +0200
loplugin:useuniqueptr in SfxRequest
Change-Id: Id2b2a1ac9803b0caa2d28163160d85be5253dd9e
diff --git a/include/sfx2/request.hxx b/include/sfx2/request.hxx
index 72d98071007f..eb6e1fb0832a 100644
--- a/include/sfx2/request.hxx
+++ b/include/sfx2/request.hxx
@@ -51,7 +51,7 @@ class SFX2_DLLPUBLIC SfxRequest: public SfxHint
friend struct SfxRequest_Impl;
sal_uInt16 nSlot;
- SfxAllItemSet* pArgs;
+ std::unique_ptr<SfxAllItemSet> pArgs;
std::unique_ptr< SfxRequest_Impl > pImpl;
public:
@@ -78,7 +78,7 @@ public:
void SetModifier( sal_uInt16 nModi );
SAL_DLLPRIVATE void SetInternalArgs_Impl( const SfxAllItemSet& rArgs );
SAL_DLLPRIVATE const SfxItemSet* GetInternalArgs_Impl() const;
- const SfxItemSet* GetArgs() const { return pArgs; }
+ const SfxItemSet* GetArgs() const { return pArgs.get(); }
void SetArgs( const SfxAllItemSet& rArgs );
void AppendItem(const SfxPoolItem &);
void RemoveItem( sal_uInt16 nSlotId );
diff --git a/sfx2/source/control/request.cxx b/sfx2/source/control/request.cxx
index d7e6e6af1346..086aa45ec38c 100644
--- a/sfx2/source/control/request.cxx
+++ b/sfx2/source/control/request.cxx
@@ -123,7 +123,7 @@ SfxRequest::~SfxRequest()
pImpl->Record( uno::Sequence < beans::PropertyValue >() );
// Clear object
- delete pArgs;
+ pArgs.reset();
if ( pImpl->pRetVal )
DeleteItemOnIdle(pImpl->pRetVal);
}
@@ -408,8 +408,7 @@ void SfxRequest::Record_Impl
void SfxRequest::SetArgs( const SfxAllItemSet& rArgs )
{
- delete pArgs;
- pArgs = new SfxAllItemSet(rArgs);
+ pArgs.reset(new SfxAllItemSet(rArgs));
pImpl->SetPool( pArgs->GetPool() );
}
@@ -417,7 +416,7 @@ void SfxRequest::SetArgs( const SfxAllItemSet& rArgs )
void SfxRequest::AppendItem(const SfxPoolItem &rItem)
{
if(!pArgs)
- pArgs = new SfxAllItemSet(*pImpl->pPool);
+ pArgs.reset( new SfxAllItemSet(*pImpl->pPool) );
pArgs->Put(rItem, rItem.Which());
}
@@ -428,7 +427,7 @@ void SfxRequest::RemoveItem( sal_uInt16 nID )
{
pArgs->ClearItem(nID);
if ( !pArgs->Count() )
- DELETEZ(pArgs);
+ pArgs.reset();
}
}
@@ -480,7 +479,7 @@ void SfxRequest::Done
// Keep items if possible, so they can be queried by StarDraw.
if ( !pArgs )
{
- pArgs = new SfxAllItemSet( rSet );
+ pArgs.reset( new SfxAllItemSet( rSet ) );
pImpl->SetPool( pArgs->GetPool() );
}
else
@@ -500,15 +499,15 @@ void SfxRequest::Done
void SfxRequest::Done( bool bRelease )
// [<SfxRequest::Done(SfxItemSet&)>]
{
- Done_Impl( pArgs );
+ Done_Impl( pArgs.get() );
if( bRelease )
- DELETEZ( pArgs );
+ pArgs.reset();
}
void SfxRequest::ForgetAllArgs()
{
- DELETEZ( pArgs );
+ pArgs.reset();
pImpl->pInternalArgs.reset();
}
@@ -530,7 +529,7 @@ void SfxRequest::Cancel()
{
pImpl->bCancelled = true;
pImpl->SetPool( nullptr );
- DELETEZ( pArgs );
+ pArgs.reset();
}
@@ -757,7 +756,7 @@ bool SfxRequest::AllowsRecording() const
void SfxRequest::ReleaseArgs()
{
- DELETEZ( pArgs );
+ pArgs.reset();
pImpl->pInternalArgs.reset();
}
commit 28f55a1cff69459e9c583221d39b19ba57ab55da
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:22:36 2018 +0200
loplugin:useuniqueptr in SfxItemDisruptor_Impl
Change-Id: Ie85c1a8fd699f68ffcc8853be4bf8a86cfec06e7
diff --git a/sfx2/source/control/itemdel.cxx b/sfx2/source/control/itemdel.cxx
index 9ee76fd6a2bb..c6d53ef45936 100644
--- a/sfx2/source/control/itemdel.cxx
+++ b/sfx2/source/control/itemdel.cxx
@@ -26,7 +26,7 @@
class SfxItemDisruptor_Impl
{
- SfxPoolItem * pItem;
+ std::unique_ptr<SfxPoolItem> pItem;
Idle m_Idle;
private:
@@ -64,7 +64,7 @@ SfxItemDisruptor_Impl::~SfxItemDisruptor_Impl()
// reset RefCount (was set to SFX_ITEMS_SPECIAL before!)
pItem->SetRefCount( 0 );
- delete pItem;
+ pItem.reset();
}
IMPL_LINK_NOARG(SfxItemDisruptor_Impl, Delete, Timer*, void)
commit 1dbc2a5cde8d8463b17478cc407227c547c352c6
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:20:30 2018 +0200
loplugin:useuniqueptr in SvBaseLink
Change-Id: Iaa133fa7f3b4bc4adea1c1568015327b1694161b
diff --git a/include/sfx2/lnkbase.hxx b/include/sfx2/lnkbase.hxx
index eaeebe466f40..6809a1d5ded6 100644
--- a/include/sfx2/lnkbase.hxx
+++ b/include/sfx2/lnkbase.hxx
@@ -88,7 +88,7 @@ protected:
// Set LinkSourceName without action
void SetName( const OUString & rLn );
- ImplBaseLinkData* pImplData;
+ std::unique_ptr<ImplBaseLinkData> pImplData;
bool m_bIsReadOnly;
css::uno::Reference<css::io::XInputStream>
diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx
index faf9e92957c4..b912cf8d88bb 100644
--- a/sfx2/source/appl/lnkbase2.cxx
+++ b/sfx2/source/appl/lnkbase2.cxx
@@ -125,7 +125,7 @@ SvBaseLink::SvBaseLink()
m_bIsReadOnly(false)
{
nObjType = OBJECT_CLIENT_SO;
- pImplData = new ImplBaseLinkData;
+ pImplData.reset( new ImplBaseLinkData );
bVisible = bSynchron = true;
bWasLastEditOK = false;
}
@@ -136,7 +136,7 @@ SvBaseLink::SvBaseLink( SfxLinkUpdateMode nUpdateMode, SotClipboardFormatId nCon
m_bIsReadOnly(false)
{
nObjType = OBJECT_CLIENT_SO;
- pImplData = new ImplBaseLinkData;
+ pImplData.reset( new ImplBaseLinkData );
bVisible = bSynchron = true;
bWasLastEditOK = false;
@@ -231,7 +231,7 @@ SvBaseLink::~SvBaseLink()
break;
}
- delete pImplData;
+ pImplData.reset();
}
IMPL_LINK( SvBaseLink, EndEditHdl, const OUString&, _rNewName, void )
commit 9499ba009faf73769827aa53809c9b5133d9e3b5
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:20:17 2018 +0200
loplugin:useuniqueptr in SvDDEObject
Change-Id: Ia7f98a84bd42289ef0673b52e5e74a6a24554402
diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx
index 2ed6388bbe97..4428f875bd08 100644
--- a/sfx2/source/appl/impldde.cxx
+++ b/sfx2/source/appl/impldde.cxx
@@ -126,9 +126,9 @@ SvDDEObject::SvDDEObject()
SvDDEObject::~SvDDEObject()
{
- delete pLink;
- delete pRequest;
- delete pConnection;
+ pLink.reset();
+ pRequest.reset();
+ pConnection.reset();
}
bool SvDDEObject::GetData( css::uno::Any & rData /*out param*/,
@@ -143,8 +143,7 @@ bool SvDDEObject::GetData( css::uno::Any & rData /*out param*/,
OUString sServer( pConnection->GetServiceName() );
OUString sTopic( pConnection->GetTopicName() );
- delete pConnection;
- pConnection = new DdeConnection( sServer, sTopic );
+ pConnection.reset( new DdeConnection( sServer, sTopic ) );
}
if( bWaitForData ) // we are in an rekursive loop, get out again
@@ -172,9 +171,7 @@ bool SvDDEObject::GetData( css::uno::Any & rData /*out param*/,
{
// otherwise it will be executed asynchronously
{
- delete pRequest;
-
- pRequest = new DdeRequest( *pConnection, sItem );
+ pRequest.reset( new DdeRequest( *pConnection, sItem ) );
pRequest->SetDataHdl( LINK( this, SvDDEObject, ImplGetDDEData ) );
pRequest->SetDoneHdl( LINK( this, SvDDEObject, ImplDoneDDEData ) );
pRequest->SetFormat( SotExchange::GetFormatIdFromMimeType(
@@ -213,7 +210,7 @@ bool SvDDEObject::Connect( SvBaseLink * pSvLink )
if( sServer.isEmpty() || sTopic.isEmpty() || sItem.isEmpty() )
return false;
- pConnection = new DdeConnection( sServer, sTopic );
+ pConnection.reset( new DdeConnection( sServer, sTopic ) );
if( pConnection->GetError() )
{
// check if the DDE server knows the "SYSTEM" topic
@@ -234,7 +231,7 @@ bool SvDDEObject::Connect( SvBaseLink * pSvLink )
if( SfxLinkUpdateMode::ALWAYS == nLinkType && !pLink && !pConnection->GetError() )
{
// Setting up Hot Link, Data will be available at some point later on
- pLink = new DdeHotLink( *pConnection, sItem );
+ pLink.reset( new DdeHotLink( *pConnection, sItem ) );
pLink->SetDataHdl( LINK( this, SvDDEObject, ImplGetDDEData ) );
pLink->SetDoneHdl( LINK( this, SvDDEObject, ImplDoneDDEData ) );
pLink->SetFormat( pSvLink->GetContentType() );
@@ -347,9 +344,9 @@ IMPL_LINK( SvDDEObject, ImplDoneDDEData, bool, bValid, void )
{
DdeTransaction* pReq = nullptr;
if( !pLink || ( pLink && pLink->IsBusy() ))
- pReq = pRequest; // only the one that is ready
+ pReq = pRequest.get(); // only the one that is ready
else if( pRequest && pRequest->IsBusy() )
- pReq = pLink; // only the one that is ready
+ pReq = pLink.get(); // only the one that is ready
if( pReq )
{
@@ -357,7 +354,7 @@ IMPL_LINK( SvDDEObject, ImplDoneDDEData, bool, bValid, void )
{
pReq->Execute();
}
- else if( pReq == pRequest )
+ else if( pReq == pRequest.get() )
{
bWaitForData = false;
}
diff --git a/sfx2/source/appl/impldde.hxx b/sfx2/source/appl/impldde.hxx
index 5c2bc3a014c4..d161a783fa61 100644
--- a/sfx2/source/appl/impldde.hxx
+++ b/sfx2/source/appl/impldde.hxx
@@ -35,9 +35,9 @@ class SvDDEObject : public SvLinkSource
{
OUString sItem;
- DdeConnection* pConnection;
- DdeLink* pLink;
- DdeRequest* pRequest;
+ std::unique_ptr<DdeConnection> pConnection;
+ std::unique_ptr<DdeLink> pLink;
+ std::unique_ptr<DdeRequest> pRequest;
css::uno::Any * pGetData;
bool bWaitForData; // waiting for data?
commit cc503a8666b239f5301ded96fc97539efffb5962
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:09:56 2018 +0200
loplugin:useuniqueptr in EditFieldInfo
Change-Id: I8c4cc4ab212409bce54b64d59d07d77a924ed11c
diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx
index f6bba5cc89b6..2c2ca5f1285f 100644
--- a/include/editeng/outliner.hxx
+++ b/include/editeng/outliner.hxx
@@ -500,8 +500,8 @@ private:
Outliner* pOutliner;
const SvxFieldItem& rFldItem;
- Color* pTxtColor;
- Color* pFldColor;
+ std::unique_ptr<Color> pTxtColor;
+ std::unique_ptr<Color> pFldColor;
OUString aRepresentation;
@@ -518,28 +518,22 @@ public:
{
pOutliner = pOutl;
nPara = nPa; nPos = nPo;
- pTxtColor = nullptr; pFldColor = nullptr;
mpSdrPage = nullptr;
}
- ~EditFieldInfo()
- {
- delete pTxtColor;
- delete pFldColor;
- }
Outliner* GetOutliner() const { return pOutliner; }
const SvxFieldItem& GetField() const { return rFldItem; }
- Color* GetTextColor() const { return pTxtColor; }
+ Color* GetTextColor() const { return pTxtColor.get(); }
void SetTextColor( const Color& rColor )
- { delete pTxtColor; pTxtColor = new Color( rColor ); }
+ { pTxtColor.reset( new Color( rColor ) ); }
- Color* GetFieldColor() const { return pFldColor; }
+ Color* GetFieldColor() const { return pFldColor.get(); }
void SetFieldColor( const Color& rColor )
- { delete pFldColor; pFldColor = new Color( rColor ); }
+ { pFldColor.reset( new Color( rColor ) ); }
void ClearFieldColor()
- { delete pFldColor; pFldColor = nullptr; }
+ { pFldColor.reset(); }
sal_Int32 GetPara() const { return nPara; }
sal_Int32 GetPos() const { return nPos; }
commit c3158ef830b10868690aac0cb13c620c5942ae50
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:07:47 2018 +0200
loplugin:useuniqueptr in SfxAppData_Impl
Change-Id: Ic8b02f5c6582a992b64f31435332ee37d826ad48
diff --git a/sfx2/source/appl/appdata.cxx b/sfx2/source/appl/appdata.cxx
index 920cbdaaea6c..4a277865d830 100644
--- a/sfx2/source/appl/appdata.cxx
+++ b/sfx2/source/appl/appdata.cxx
@@ -122,11 +122,11 @@ SfxAppData_Impl::SfxAppData_Impl()
SfxAppData_Impl::~SfxAppData_Impl()
{
DeInitDDE();
- delete pBasicManager;
+ pBasicManager.reset();
#if HAVE_FEATURE_SCRIPTING
BasicManagerRepository::revokeCreationListener( *pBasMgrListener );
- delete pBasMgrListener;
+ pBasMgrListener.reset();
#endif
}
diff --git a/sfx2/source/inc/appdata.hxx b/sfx2/source/inc/appdata.hxx
index 334abf539179..ac5815731d82 100644
--- a/sfx2/source/inc/appdata.hxx
+++ b/sfx2/source/inc/appdata.hxx
@@ -106,8 +106,9 @@ public:
SfxViewFrameArr_Impl* pViewFrames;
SfxViewShellArr_Impl* pViewShells;
SfxObjectShellArr_Impl* pObjShells;
- SfxBasicManagerHolder* pBasicManager;
- SfxBasicManagerCreationListener*
+ std::unique_ptr<SfxBasicManagerHolder>
+ pBasicManager;
+ std::unique_ptr<SfxBasicManagerCreationListener>
pBasMgrListener;
SfxViewFrame* pViewFrame;
SfxSlotPool* pSlotPool;
commit cbd1f82de7eb945578f3e34894d2c37170a0790f
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 15:05:33 2018 +0200
loplugin:useuniqeptr in SbxVariable
Change-Id: I788ec594589d9708e12db83a7371b5a8d9fed38c
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index de486209750a..f0ee0f7f7f56 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -2080,7 +2080,7 @@ ErrCode SbMethod::Call( SbxValue* pRet, SbxVariable* pCaller )
// #100883 Own Broadcast for SbMethod
void SbMethod::Broadcast( SfxHintId nHintId )
{
- if( pCst && !IsSet( SbxFlagBits::NoBroadcast ) )
+ if( mpBroadcaster && !IsSet( SbxFlagBits::NoBroadcast ) )
{
// Because the method could be called from outside, test here once again
// the authorisation
@@ -2095,8 +2095,7 @@ void SbMethod::Broadcast( SfxHintId nHintId )
pMod->Compile();
// Block broadcasts while creating new method
- SfxBroadcaster* pSave = pCst;
- pCst = nullptr;
+ std::unique_ptr<SfxBroadcaster> pSaveBroadcaster = std::move(mpBroadcaster);
SbMethod* pThisCopy = new SbMethod( *this );
SbMethodRef xHolder = pThisCopy;
if( mpPar.is() )
@@ -2108,14 +2107,14 @@ void SbMethod::Broadcast( SfxHintId nHintId )
SetParameters( nullptr );
}
- pCst = pSave;
- pSave->Broadcast( SbxHint( nHintId, pThisCopy ) );
+ mpBroadcaster = std::move(pSaveBroadcaster);
+ mpBroadcaster->Broadcast( SbxHint( nHintId, pThisCopy ) );
SbxFlagBits nSaveFlags = GetFlags();
SetFlag( SbxFlagBits::ReadWrite );
- pCst = nullptr;
+ pSaveBroadcaster = std::move(mpBroadcaster);
Put( pThisCopy->GetValues_Impl() );
- pCst = pSave;
+ mpBroadcaster = std::move(pSaveBroadcaster);
SetFlags( nSaveFlags );
}
}
diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx
index 17db37db5c37..30088e0746f9 100644
--- a/basic/source/sbx/sbxvar.cxx
+++ b/basic/source/sbx/sbxvar.cxx
@@ -56,7 +56,6 @@ class SbxVariableImpl
SbxVariable::SbxVariable() : SbxValue()
{
- pCst = nullptr;
pParent = nullptr;
nUserData = 0;
nHash = 0;
@@ -78,7 +77,6 @@ SbxVariable::SbxVariable( const SbxVariable& r )
}
#endif
}
- pCst = nullptr;
if( r.CanRead() )
{
pParent = r.pParent;
@@ -111,7 +109,6 @@ void SbxEnsureParentVariable::SetParent(SbxObject* p)
SbxVariable::SbxVariable( SbxDataType t ) : SbxValue( t )
{
- pCst = nullptr;
pParent = nullptr;
nUserData = 0;
nHash = 0;
@@ -125,18 +122,18 @@ SbxVariable::~SbxVariable()
removeDimAsNewRecoverItem( this );
}
#endif
- delete pCst;
+ mpBroadcaster.reset();
}
// Broadcasting
SfxBroadcaster& SbxVariable::GetBroadcaster()
{
- if( !pCst )
+ if( !mpBroadcaster )
{
- pCst = new SfxBroadcaster;
+ mpBroadcaster.reset( new SfxBroadcaster );
}
- return *pCst;
+ return *mpBroadcaster;
}
SbxArray* SbxVariable::GetParameters() const
@@ -150,7 +147,7 @@ SbxArray* SbxVariable::GetParameters() const
void SbxVariable::Broadcast( SfxHintId nHintId )
{
- if( pCst && !IsSet( SbxFlagBits::NoBroadcast ) )
+ if( mpBroadcaster && !IsSet( SbxFlagBits::NoBroadcast ) )
{
// Because the method could be called from outside, check the
// rights here again
@@ -174,8 +171,7 @@ void SbxVariable::Broadcast( SfxHintId nHintId )
SbxVariableRef aBroadcastGuard(this);
// Avoid further broadcasting
- SfxBroadcaster* pSave = pCst;
- pCst = nullptr;
+ std::unique_ptr<SfxBroadcaster> pSave = std::move(mpBroadcaster);
SbxFlagBits nSaveFlags = GetFlags();
SetFlag( SbxFlagBits::ReadWrite );
if( mpPar.is() )
@@ -184,8 +180,7 @@ void SbxVariable::Broadcast( SfxHintId nHintId )
mpPar->GetRef( 0 ) = this;
}
pSave->Broadcast( SbxHint( nHintId, this ) );
- delete pCst; // who knows already, onto which thoughts someone comes?
- pCst = pSave;
+ mpBroadcaster = std::move(pSave);
SetFlags( nSaveFlags );
}
}
diff --git a/include/basic/sbxvar.hxx b/include/basic/sbxvar.hxx
index f90dc939b768..b189d4e32c26 100644
--- a/include/basic/sbxvar.hxx
+++ b/include/basic/sbxvar.hxx
@@ -224,7 +224,7 @@ class BASIC_DLLPUBLIC SbxVariable : public SbxValue
friend class SbMethod;
std::unique_ptr<SbxVariableImpl> mpImpl; // Impl data
- SfxBroadcaster* pCst; // Broadcaster, if needed
+ std::unique_ptr<SfxBroadcaster> mpBroadcaster; // Broadcaster, if needed
OUString maName; // Name, if available
SbxArrayRef mpPar; // Parameter-Array, if set
sal_uInt16 nHash; // Hash-ID for search
@@ -268,7 +268,7 @@ public:
// Sfx-Broadcasting-Support:
// Due to data reduction and better DLL-hierarchy currently via casting
SfxBroadcaster& GetBroadcaster();
- bool IsBroadcaster() const { return pCst != nullptr; }
+ bool IsBroadcaster() const { return mpBroadcaster != nullptr; }
virtual void Broadcast( SfxHintId nHintId ) override;
const SbxObject* GetParent() const { return pParent; }
commit 5ce29c328f77e00bbf979699eb23fa85e830cbb1
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:51:22 2018 +0200
loplugin:useuniqueptr in SbiStdObject
Change-Id: Ic66d817746de423549c87f58068e47f9942d04fd
diff --git a/basic/source/inc/stdobj.hxx b/basic/source/inc/stdobj.hxx
index 12eb8dc31234..d7bc4c176493 100644
--- a/basic/source/inc/stdobj.hxx
+++ b/basic/source/inc/stdobj.hxx
@@ -27,7 +27,7 @@ class SbStdFactory;
class SbiStdObject : public SbxObject
{
- SbStdFactory* pStdFactory;
+ std::unique_ptr<SbStdFactory> pStdFactory;
virtual ~SbiStdObject() override;
using SbxVariable::GetInfo;
diff --git a/basic/source/runtime/stdobj.cxx b/basic/source/runtime/stdobj.cxx
index 23c00519214b..d6349e0000a0 100644
--- a/basic/source/runtime/stdobj.cxx
+++ b/basic/source/runtime/stdobj.cxx
@@ -724,16 +724,16 @@ SbiStdObject::SbiStdObject( const OUString& r, StarBASIC* pb ) : SbxObject( r )
SetParent( pb );
- pStdFactory = new SbStdFactory;
- SbxBase::AddFactory( pStdFactory );
+ pStdFactory.reset( new SbStdFactory );
+ SbxBase::AddFactory( pStdFactory.get() );
Insert( new SbStdClipboard );
}
SbiStdObject::~SbiStdObject()
{
- SbxBase::RemoveFactory( pStdFactory );
- delete pStdFactory;
+ SbxBase::RemoveFactory( pStdFactory.get() );
+ pStdFactory.reset();
}
// Finding an element:
commit 9b2754e6797e5903fba147c0f8504c8ccf8ef7ce
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:50:19 2018 +0200
loplugin:useuniqueptr in SbUnoMethod
Change-Id: Ibeae1754a18152c3a17379c95e3caa536a8822db
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index fc2b6fac29ef..034ee01d0bba 100644
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -2493,7 +2493,7 @@ SbUnoMethod::SbUnoMethod
SbUnoMethod::~SbUnoMethod()
{
- delete pParamInfoSeq;
+ pParamInfoSeq.reset();
if( this == pFirst )
pFirst = pNext;
@@ -2535,7 +2535,7 @@ const Sequence<ParamInfo>& SbUnoMethod::getParamInfos()
Sequence<ParamInfo> aTmp;
if (m_xUnoMethod.is())
aTmp = m_xUnoMethod->getParameterInfos();
- pParamInfoSeq = new Sequence<ParamInfo>(aTmp);
+ pParamInfoSeq.reset( new Sequence<ParamInfo>(aTmp) );
}
return *pParamInfoSeq;
}
diff --git a/basic/source/inc/sbunoobj.hxx b/basic/source/inc/sbunoobj.hxx
index b31e34966d4e..2df319ffbb21 100644
--- a/basic/source/inc/sbunoobj.hxx
+++ b/basic/source/inc/sbunoobj.hxx
@@ -154,7 +154,7 @@ class SbUnoMethod : public SbxMethod
friend void clearUnoMethodsForBasic( StarBASIC const * pBasic );
css::uno::Reference< css::reflection::XIdlMethod > m_xUnoMethod;
- css::uno::Sequence< css::reflection::ParamInfo >* pParamInfoSeq;
+ std::unique_ptr<css::uno::Sequence< css::reflection::ParamInfo >> pParamInfoSeq;
// #67781 reference to the previous and the next method in the method list
SbUnoMethod* pPrev;
commit 92ee1858b7865c5f0e256230e494cd8dca1ec3c1
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:48:12 2018 +0200
loplugin:useuniqueptr in SbiGlobals
Change-Id: I0ebec3193b4369039f90be4223ebdf6d048b8478
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 6562a3fc9d69..524b392a6e98 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -915,8 +915,8 @@ StarBASIC::StarBASIC( StarBASIC* p, bool bIsDocBasic )
if( !GetSbData()->nInst++ )
{
- GetSbData()->pSbFac = new SbiFactory;
- AddFactory( GetSbData()->pSbFac );
+ GetSbData()->pSbFac.reset( new SbiFactory );
+ AddFactory( GetSbData()->pSbFac.get() );
GetSbData()->pTypeFac = new SbTypeFactory;
AddFactory( GetSbData()->pTypeFac );
GetSbData()->pClassFac = new SbClassFactory;
@@ -925,8 +925,8 @@ StarBASIC::StarBASIC( StarBASIC* p, bool bIsDocBasic )
AddFactory( GetSbData()->pOLEFac );
GetSbData()->pFormFac = new SbFormFactory;
AddFactory( GetSbData()->pFormFac );
- GetSbData()->pUnoFac = new SbUnoFactory;
- AddFactory( GetSbData()->pUnoFac );
+ GetSbData()->pUnoFac.reset( new SbUnoFactory );
+ AddFactory( GetSbData()->pUnoFac.get() );
}
pRtl = new SbiStdObject(RTLNAME, this );
// Search via StarBasic is always global
@@ -954,10 +954,10 @@ StarBASIC::~StarBASIC()
if( !--GetSbData()->nInst )
{
- RemoveFactory( GetSbData()->pSbFac );
- delete GetSbData()->pSbFac; GetSbData()->pSbFac = nullptr;
- RemoveFactory( GetSbData()->pUnoFac );
- delete GetSbData()->pUnoFac; GetSbData()->pUnoFac = nullptr;
+ RemoveFactory( GetSbData()->pSbFac.get() );
+ GetSbData()->pSbFac.reset();
+ RemoveFactory( GetSbData()->pUnoFac.get() );
+ GetSbData()->pUnoFac.reset();
RemoveFactory( GetSbData()->pTypeFac );
delete GetSbData()->pTypeFac; GetSbData()->pTypeFac = nullptr;
RemoveFactory( GetSbData()->pClassFac );
diff --git a/basic/source/classes/sbintern.cxx b/basic/source/classes/sbintern.cxx
index dc5d7b697fbe..1c4af0f5fa9b 100644
--- a/basic/source/classes/sbintern.cxx
+++ b/basic/source/classes/sbintern.cxx
@@ -60,9 +60,9 @@ SbiGlobals::SbiGlobals()
SbiGlobals::~SbiGlobals()
{
- delete pSbFac;
- delete pUnoFac;
- delete pTransliterationWrapper;
+ pSbFac.reset();
+ pUnoFac.reset();
+ pTransliterationWrapper.reset();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basic/source/inc/sbintern.hxx b/basic/source/inc/sbintern.hxx
index 4ff2d7ad547c..70e6e69a1e23 100644
--- a/basic/source/inc/sbintern.hxx
+++ b/basic/source/inc/sbintern.hxx
@@ -80,8 +80,8 @@ struct SbiGlobals
{
static SbiGlobals* pGlobals;
SbiInstance* pInst; // all active runtime instances
- SbiFactory* pSbFac; // StarBASIC-Factory
- SbUnoFactory* pUnoFac; // Factory for Uno-Structs at DIM AS NEW
+ std::unique_ptr<SbiFactory> pSbFac; // StarBASIC-Factory
+ std::unique_ptr<SbUnoFactory> pUnoFac; // Factory for Uno-Structs at DIM AS NEW
SbTypeFactory* pTypeFac; // Factory for user defined types
SbClassFactory* pClassFac; // Factory for user defined classes (based on class modules)
SbOLEFactory* pOLEFac; // Factory for OLE types
@@ -98,7 +98,7 @@ struct SbiGlobals
bool bGlobalInitErr;
bool bRunInit; // true, if RunInit active from the Basic
OUString aErrMsg; // buffer for GetErrorText()
- ::utl::TransliterationWrapper* pTransliterationWrapper; // For StrComp
+ std::unique_ptr<::utl::TransliterationWrapper> pTransliterationWrapper; // For StrComp
bool bBlockCompilerError;
BasicManager* pAppBasMgr;
StarBASIC* pMSOMacroRuntimLib; // Lib containing MSO Macro Runtime API entry symbols
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 17ee2b4f969d..58c8b35c9cb1 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -1536,15 +1536,16 @@ void SbRtl_StrComp(StarBASIC *, SbxArray & rPar, bool)
sal_Int32 nRetValue = 0;
if( bTextCompare )
{
- ::utl::TransliterationWrapper* pTransliterationWrapper = GetSbData()->pTransliterationWrapper;
+ ::utl::TransliterationWrapper* pTransliterationWrapper = GetSbData()->pTransliterationWrapper.get();
if( !pTransliterationWrapper )
{
uno::Reference< uno::XComponentContext > xContext = getProcessComponentContext();
- pTransliterationWrapper = GetSbData()->pTransliterationWrapper =
+ GetSbData()->pTransliterationWrapper.reset(
new ::utl::TransliterationWrapper( xContext,
TransliterationFlags::IGNORE_CASE |
TransliterationFlags::IGNORE_KANA |
- TransliterationFlags::IGNORE_WIDTH );
+ TransliterationFlags::IGNORE_WIDTH ) );
+ pTransliterationWrapper = GetSbData()->pTransliterationWrapper.get();
}
LanguageType eLangType = Application::GetSettings().GetLanguageTag().getLanguageType();
commit eb8cf9bb9dd6ef2a5fa976230e229997552f8b64
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:41:21 2018 +0200
loplugin:useuniqueptr in SbModule
Change-Id: I20525bd69c91ff35c9e569525a0d4556bc184982
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 85ea6d902ec1..6562a3fc9d69 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -626,8 +626,8 @@ SbClassModuleObject::SbClassModuleObject( SbModule* pClassModule )
{
aOUSource = pClassModule->aOUSource;
aComment = pClassModule->aComment;
- pImage = pClassModule->pImage;
- pBreaks = pClassModule->pBreaks;
+ pImage = std::move(pClassModule->pImage);
+ pBreaks = std::move(pClassModule->pBreaks);
SetClassName( pClassModule->GetName() );
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index d83cd2b59874..de486209750a 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -461,9 +461,9 @@ SbModule::SbModule( const OUString& rName, bool bVBACompat )
SbModule::~SbModule()
{
SAL_INFO("basic","Module named " << GetName() << " is destructing");
- delete pImage;
- delete pBreaks;
- delete pClassData;
+ pImage.reset();
+ pBreaks.reset();
+ pClassData.reset();
mxWrapper = nullptr;
}
@@ -492,7 +492,7 @@ const SbxObject* SbModule::FindType( const OUString& aTypeName ) const
void SbModule::StartDefinitions()
{
- delete pImage; pImage = nullptr;
+ pImage.reset();
if( pClassData )
pClassData->clear();
@@ -642,7 +642,7 @@ void SbModule::EndDefinitions( bool bNewState )
void SbModule::Clear()
{
- delete pImage; pImage = nullptr;
+ pImage.reset();
if( pClassData )
pClassData->clear();
SbxObject::Clear();
@@ -1524,7 +1524,7 @@ bool SbModule::SetBP( sal_uInt16 nLine )
if( !IsBreakable( nLine ) )
return false;
if( !pBreaks )
- pBreaks = new SbiBreakpoints;
+ pBreaks.reset( new SbiBreakpoints );
size_t i;
for( i = 0; i < pBreaks->size(); i++ )
{
@@ -1562,8 +1562,7 @@ bool SbModule::ClearBP( sal_uInt16 nLine )
}
if( pBreaks->empty() )
{
- delete pBreaks;
- pBreaks = nullptr;
+ pBreaks.reset();
}
}
return bRes;
@@ -1571,15 +1570,14 @@ bool SbModule::ClearBP( sal_uInt16 nLine )
void SbModule::ClearAllBP()
{
- delete pBreaks;
- pBreaks = nullptr;
+ pBreaks.reset();
}
void
SbModule::fixUpMethodStart( bool bCvtToLegacy, SbiImage* pImg ) const
{
if ( !pImg )
- pImg = pImage;
+ pImg = pImage.get();
for( sal_uInt32 i = 0; i < pMethods->Count(); i++ )
{
SbMethod* pMeth = dynamic_cast<SbMethod*>( pMethods->Get( static_cast<sal_uInt16>(i) ) );
@@ -1606,18 +1604,17 @@ bool SbModule::LoadData( SvStream& rStrm, sal_uInt16 nVer )
rStrm.ReadUChar( bImage );
if( bImage )
{
- SbiImage* p = new SbiImage;
+ std::unique_ptr<SbiImage> p( new SbiImage );
sal_uInt32 nImgVer = 0;
if( !p->Load( rStrm, nImgVer ) )
{
- delete p;
return false;
}
// If the image is in old format, we fix up the method start offsets
if ( nImgVer < B_EXT_IMG_VERSION )
{
- fixUpMethodStart( false, p );
+ fixUpMethodStart( false, p.get() );
p->ReleaseLegacyBuffer();
}
aComment = p->aComment;
@@ -1629,15 +1626,13 @@ bool SbModule::LoadData( SvStream& rStrm, sal_uInt16 nVer )
if( nVer == 1 )
{
SetSource32( p->aOUSource );
- delete p;
}
else
- pImage = p;
+ pImage = std::move(p);
}
else
{
SetSource32( p->aOUSource );
- delete p;
}
}
return true;
diff --git a/basic/source/comp/codegen.cxx b/basic/source/comp/codegen.cxx
index aa587ba0e5b5..8b7a0a8142e4 100644
--- a/basic/source/comp/codegen.cxx
+++ b/basic/source/comp/codegen.cxx
@@ -133,7 +133,7 @@ void SbiCodeGen::Save()
if( pParser->IsCodeCompleting() )
return;
- SbiImage* p = new SbiImage;
+ std::unique_ptr<SbiImage> p( new SbiImage );
rMod.StartDefinitions();
// OPTION BASE-Value:
p->nDimBase = pParser->nBase;
@@ -150,7 +150,7 @@ void SbiCodeGen::Save()
nIfaceCount = pParser->aIfaceVector.size();
if( !rMod.pClassData )
- rMod.pClassData = new SbClassData;
+ rMod.pClassData.reset( new SbClassData );
if( nIfaceCount )
{
for( int i = 0 ; i < nIfaceCount ; i++ )
@@ -375,11 +375,7 @@ void SbiCodeGen::Save()
}
if( !p->IsError() )
{
- rMod.pImage = p;
- }
- else
- {
- delete p;
+ rMod.pImage = std::move(p);
}
rMod.EndDefinitions();
}
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index db68c4988f98..4c2b52d1ca81 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -561,7 +561,7 @@ SbMethod* SbiInstance::GetCaller( sal_uInt16 nLevel )
SbiRuntime::SbiRuntime( SbModule* pm, SbMethod* pe, sal_uInt32 nStart )
: rBasic( *static_cast<StarBASIC*>(pm->pParent) ), pInst( GetSbData()->pInst ),
- pMod( pm ), pMeth( pe ), pImg( pMod->pImage ), mpExtCaller(nullptr), m_nLastTime(0)
+ pMod( pm ), pMeth( pe ), pImg( pMod->pImage.get() ), mpExtCaller(nullptr), m_nLastTime(0)
{
nFlags = pe ? pe->GetDebugFlags() : BasicDebugFlags::NONE;
pIosys = pInst->GetIoSystem();
@@ -3149,10 +3149,9 @@ bool SbiRuntime::implIsClass( SbxObject const * pObj, const OUString& aClass )
{
OUString aObjClass = pObj->GetClassName();
SbModule* pClassMod = GetSbData()->pClassFac->FindClass( aObjClass );
- SbClassData* pClassData;
- if( pClassMod && (pClassData=pClassMod->pClassData) != nullptr )
+ if( pClassMod && pClassMod->pClassData )
{
- SbxVariable* pClassVar = pClassData->mxIfaces->Find( aClass, SbxClassType::DontCare );
+ SbxVariable* pClassVar = pClassMod->pClassData->mxIfaces->Find( aClass, SbxClassType::DontCare );
bRet = (pClassVar != nullptr);
}
}
diff --git a/include/basic/sbmod.hxx b/include/basic/sbmod.hxx
index 56a139e23e59..c38c7435ccef 100644
--- a/include/basic/sbmod.hxx
+++ b/include/basic/sbmod.hxx
@@ -28,6 +28,7 @@
#include <rtl/ustring.hxx>
#include <vector>
#include <deque>
+#include <memory>
#include <basic/basicdllapi.h>
#include <basic/codecompletecache.hxx>
@@ -62,9 +63,9 @@ protected:
css::uno::Reference< css::script::XInvocation > mxWrapper;
OUString aOUSource;
OUString aComment;
- SbiImage* pImage; // the Image
- SbiBreakpoints* pBreaks; // Breakpoints
- SbClassData* pClassData;
+ std::unique_ptr<SbiImage> pImage; // the Image
+ std::unique_ptr<SbiBreakpoints> pBreaks; // Breakpoints
+ std::unique_ptr<SbClassData> pClassData;
bool mbVBACompat;
sal_Int32 mnType;
SbxObjectRef pDocObject; // an impl object ( used by Document Modules )
commit 4ee6a54dd46aa8f7324a146d24bfb7168f8543cc
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:40:59 2018 +0200
loplugin:useuniqueptr in EMFPBrush
Change-Id: I86622a13583137605bf2b6468113da2eb5e4ee0b
diff --git a/drawinglayer/source/tools/emfpbrush.cxx b/drawinglayer/source/tools/emfpbrush.cxx
index 68ec151a6fe8..c454c940dc03 100644
--- a/drawinglayer/source/tools/emfpbrush.cxx
+++ b/drawinglayer/source/tools/emfpbrush.cxx
@@ -64,35 +64,6 @@ namespace emfplushelper
EMFPBrush::~EMFPBrush()
{
- if (blendPositions != nullptr)
- {
- delete[] blendPositions;
- blendPositions = nullptr;
- }
-
- if (colorblendPositions != nullptr)
- {
- delete[] colorblendPositions;
- colorblendPositions = nullptr;
- }
-
- if (colorblendColors != nullptr)
- {
- delete[] colorblendColors;
- colorblendColors = nullptr;
- }
-
- if (surroundColors != nullptr)
- {
- delete[] surroundColors;
- surroundColors = nullptr;
- }
-
- if (path)
- {
- delete path;
- path = nullptr;
- }
}
void EMFPBrush::Read(SvStream& s, EmfPlusHelperData const & rR)
@@ -153,7 +124,7 @@ namespace emfplushelper
surroundColorsNumber = SAL_MAX_INT32 / sizeof(::Color);
}
- surroundColors = new ::Color[surroundColorsNumber];
+ surroundColors.reset( new ::Color[surroundColorsNumber] );
for (int i = 0; i < surroundColorsNumber; i++)
{
@@ -180,7 +151,7 @@ namespace emfplushelper
SAL_INFO("drawinglayer", "EMF+\tpath (brush path gradient)");
SAL_INFO("drawinglayer", "EMF+\theader: 0x" << std::hex << pathHeader << " points: " << std::dec << pathPoints << " additional flags: 0x" << std::hex << pathFlags << std::dec);
- path = new EMFPPath(pathPoints);
+ path.reset( new EMFPPath(pathPoints) );
path->Read(s, pathFlags);
s.Seek(pos + pathLength);
@@ -197,7 +168,7 @@ namespace emfplushelper
sal_uInt64 const pos = s.Tell();
SAL_INFO("drawinglayer", "EMF+\t use boundary, points: " << boundaryPointCount);
- path = new EMFPPath(boundaryPointCount);
+ path.reset( new EMFPPath(boundaryPointCount) );
path->Read(s, 0x0);
s.Seek(pos + 8 * boundaryPointCount);
@@ -221,8 +192,8 @@ namespace emfplushelper
SAL_INFO("drawinglayer", "EMF+\tuse blend, points: " << blendPoints);
if (blendPoints<0 || sal_uInt32(blendPoints)>SAL_MAX_INT32 / (2 * sizeof(float)))
blendPoints = SAL_MAX_INT32 / (2 * sizeof(float));
- blendPositions = new float[2 * blendPoints];
- blendFactors = blendPositions + blendPoints;
+ blendPositions.reset( new float[2 * blendPoints] );
+ blendFactors = blendPositions.get() + blendPoints;
for (int i = 0; i < blendPoints; i++)
{
@@ -252,8 +223,8 @@ namespace emfplushelper
colorblendPoints = SAL_MAX_INT32 / sizeof(::Color);
}
- colorblendPositions = new float[colorblendPoints];
- colorblendColors = new ::Color[colorblendPoints];
+ colorblendPositions.reset( new float[colorblendPoints] );
+ colorblendColors.reset( new ::Color[colorblendPoints] );
for (int i = 0; i < colorblendPoints; i++)
{
@@ -302,8 +273,8 @@ namespace emfplushelper
SAL_INFO("drawinglayer", "EMF+\tuse blend, points: " << blendPoints);
if (blendPoints<0 || sal_uInt32(blendPoints)>SAL_MAX_INT32 / (2 * sizeof(float)))
blendPoints = SAL_MAX_INT32 / (2 * sizeof(float));
- blendPositions = new float[2 * blendPoints];
- blendFactors = blendPositions + blendPoints;
+ blendPositions.reset( new float[2 * blendPoints] );
+ blendFactors = blendPositions.get() + blendPoints;
for (int i = 0; i < blendPoints; i++)
{
@@ -333,8 +304,8 @@ namespace emfplushelper
colorblendPoints = sal_uInt32(SAL_MAX_INT32) / sizeof(::Color);
}
- colorblendPositions = new float[colorblendPoints];
- colorblendColors = new ::Color[colorblendPoints];
+ colorblendPositions.reset( new float[colorblendPoints] );
+ colorblendColors.reset( new ::Color[colorblendPoints] );
for (int i = 0; i < colorblendPoints; i++)
{
diff --git a/drawinglayer/source/tools/emfpbrush.hxx b/drawinglayer/source/tools/emfpbrush.hxx
index 6a03f6f50e51..b73507817de7 100644
--- a/drawinglayer/source/tools/emfpbrush.hxx
+++ b/drawinglayer/source/tools/emfpbrush.hxx
@@ -107,14 +107,14 @@ namespace emfplushelper
basegfx::B2DHomMatrix brush_transformation;
bool hasTransformation;
sal_Int32 blendPoints;
- float* blendPositions;
+ std::unique_ptr<float[]> blendPositions;
float* blendFactors;
sal_Int32 colorblendPoints;
- float* colorblendPositions;
- ::Color* colorblendColors;
+ std::unique_ptr<float[]> colorblendPositions;
+ std::unique_ptr<::Color[]> colorblendColors;
sal_Int32 surroundColorsNumber;
- ::Color* surroundColors;
- EMFPPath *path;
+ std::unique_ptr<::Color[]> surroundColors;
+ std::unique_ptr<EMFPPath> path;
EmfPlusHatchStyle hatchStyle;
EMFPBrush();
commit 6886d51669647cb033c5a857749fa5f6deb9c6fd
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:11:21 2018 +0200
loplugin:useuniqueptr in EMFPPen
Change-Id: I2c3c7be4bc3b43f03c45724e7a002e862b50f24b
diff --git a/drawinglayer/source/tools/emfppen.cxx b/drawinglayer/source/tools/emfppen.cxx
index ac9d63a202d9..096380ee8307 100644
--- a/drawinglayer/source/tools/emfppen.cxx
+++ b/drawinglayer/source/tools/emfppen.cxx
@@ -82,8 +82,6 @@ namespace emfplushelper
EMFPPen::~EMFPPen()
{
- delete customStartCap;
- delete customEndCap;
}
void EMFPPen::SetStrokeWidth(rendering::StrokeAttributes& rStrokeAttributes, EmfPlusHelperData const & rR, const ::basegfx::B2DHomMatrix& mapModeTransform)
@@ -297,7 +295,7 @@ namespace emfplushelper
SAL_INFO("drawinglayer", "EMF+\t\tcustomStartCapLen: " << customStartCapLen);
sal_uInt64 const pos = s.Tell();
- customStartCap = new EMFPCustomLineCap();
+ customStartCap.reset( new EMFPCustomLineCap() );
customStartCap->Read(s, rR);
// maybe we don't read everything yet, play it safe ;-)
@@ -314,7 +312,7 @@ namespace emfplushelper
SAL_INFO("drawinglayer", "EMF+\t\tcustomEndCapLen: " << customEndCapLen);
sal_uInt64 const pos = s.Tell();
- customEndCap = new EMFPCustomLineCap();
+ customEndCap.reset( new EMFPCustomLineCap() );
customEndCap->Read(s, rR);
// maybe we don't read everything yet, play it safe ;-)
diff --git a/drawinglayer/source/tools/emfppen.hxx b/drawinglayer/source/tools/emfppen.hxx
index d3087bdd5412..5c0818bf8ba5 100644
--- a/drawinglayer/source/tools/emfppen.hxx
+++ b/drawinglayer/source/tools/emfppen.hxx
@@ -60,9 +60,9 @@ namespace emfplushelper
sal_Int32 alignment;
std::vector<float> compoundArray;
sal_Int32 customStartCapLen;
- EMFPCustomLineCap *customStartCap;
+ std::unique_ptr<EMFPCustomLineCap> customStartCap;
sal_Int32 customEndCapLen;
- EMFPCustomLineCap *customEndCap;
+ std::unique_ptr<EMFPCustomLineCap> customEndCap;
EMFPPen();
commit 9f077074c3c95f276a419598d95778935f488951
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:10:21 2018 +0200
loplugin:useuniqueptr in GeoTexSvxMultiHatch
Change-Id: I3d25a50ed7ebf78214c0d358243f7e286503b8f8
diff --git a/drawinglayer/source/texture/texture3d.cxx b/drawinglayer/source/texture/texture3d.cxx
index 9b03362d19e9..069759533cd5 100644
--- a/drawinglayer/source/texture/texture3d.cxx
+++ b/drawinglayer/source/texture/texture3d.cxx
@@ -327,36 +327,33 @@ namespace drawinglayer
const double fAngleA(rHatch.getAngle());
maColor = rHatch.getColor();
mbFillBackground = rHatch.isFillBackground();
- mp0 = new GeoTexSvxHatch(
+ mp0.reset( new GeoTexSvxHatch(
aOutlineRange,
aOutlineRange,
rHatch.getDistance(),
- fAngleA);
+ fAngleA) );
if(attribute::HatchStyle::Double == rHatch.getStyle() || attribute::HatchStyle::Triple == rHatch.getStyle())
{
- mp1 = new GeoTexSvxHatch(
+ mp1.reset( new GeoTexSvxHatch(
aOutlineRange,
aOutlineRange,
rHatch.getDistance(),
- fAngleA + F_PI2);
+ fAngleA + F_PI2) );
}
if(attribute::HatchStyle::Triple == rHatch.getStyle())
{
- mp2 = new GeoTexSvxHatch(
+ mp2.reset( new GeoTexSvxHatch(
aOutlineRange,
aOutlineRange,
rHatch.getDistance(),
- fAngleA + F_PI4);
+ fAngleA + F_PI4) );
}
}
GeoTexSvxMultiHatch::~GeoTexSvxMultiHatch()
{
- delete mp0;
- delete mp1;
- delete mp2;
}
bool GeoTexSvxMultiHatch::impIsOnHatch(const basegfx::B2DPoint& rUV) const
diff --git a/include/drawinglayer/texture/texture3d.hxx b/include/drawinglayer/texture/texture3d.hxx
index 1c197473824a..628edb1ec670 100644
--- a/include/drawinglayer/texture/texture3d.hxx
+++ b/include/drawinglayer/texture/texture3d.hxx
@@ -123,9 +123,9 @@ namespace drawinglayer
{
basegfx::BColor maColor;
double mfLogicPixelSize;
- GeoTexSvxHatch* mp0;
- GeoTexSvxHatch* mp1;
- GeoTexSvxHatch* mp2;
+ std::unique_ptr<GeoTexSvxHatch> mp0;
+ std::unique_ptr<GeoTexSvxHatch> mp1;
+ std::unique_ptr<GeoTexSvxHatch> mp2;
bool mbFillBackground : 1;
commit 280fbe728705d0f55d09b3fd878ca6908a9bbd6c
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:09:06 2018 +0200
loplugin:useuniqueptr in ZBufferProcessor3D
Change-Id: I73005afdaf20efe15321a2a073beb3ae4f7a63e3
diff --git a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx
index ba12a85ecf12..ab25e329a8b8 100644
--- a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx
+++ b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx
@@ -430,7 +430,7 @@ namespace drawinglayer
// back to front
if(!mpRasterPrimitive3Ds)
{
- const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds = new std::vector< RasterPrimitive3D >;
+ const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds.reset( new std::vector< RasterPrimitive3D > );
}
mpRasterPrimitive3Ds->push_back(RasterPrimitive3D(
@@ -494,7 +494,7 @@ namespace drawinglayer
// back to front
if(!mpRasterPrimitive3Ds)
{
- const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds = new std::vector< RasterPrimitive3D >;
+ const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds.reset( new std::vector< RasterPrimitive3D > );
}
mpRasterPrimitive3Ds->push_back(RasterPrimitive3D(
@@ -598,18 +598,18 @@ namespace drawinglayer
maRasterRange.expand(basegfx::B2DPoint(mrBZPixelRaster.getWidth(), nStopLine));
// create the raster converter
- mpZBufferRasterConverter3D = new ZBufferRasterConverter3D(mrBZPixelRaster, *this);
+ mpZBufferRasterConverter3D.reset( new ZBufferRasterConverter3D(mrBZPixelRaster, *this) );
}
ZBufferProcessor3D::~ZBufferProcessor3D()
{
- delete mpZBufferRasterConverter3D;
+ mpZBufferRasterConverter3D.reset();
if(mpRasterPrimitive3Ds)
{
OSL_FAIL("ZBufferProcessor3D: destructed, but there are unrendered transparent geometries. Use ZBufferProcessor3D::finish() to render these (!)");
- delete mpRasterPrimitive3Ds;
}
+ mpRasterPrimitive3Ds.reset();
}
void ZBufferProcessor3D::finish()
@@ -653,8 +653,7 @@ namespace drawinglayer
// delete them to signal the destructor that all is done and
// to allow asserting there
- delete mpRasterPrimitive3Ds;
- mpRasterPrimitive3Ds = nullptr;
+ mpRasterPrimitive3Ds.reset();
}
}
} // end of namespace processor3d
diff --git a/include/drawinglayer/processor3d/zbufferprocessor3d.hxx b/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
index 9c1109eecaac..173c0415c29c 100644
--- a/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
+++ b/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
@@ -24,6 +24,7 @@
#include <drawinglayer/processor3d/defaultprocessor3d.hxx>
#include <vcl/bitmapex.hxx>
+#include <memory>
namespace basegfx {
class BZPixelRaster;
@@ -62,7 +63,7 @@ namespace drawinglayer
basegfx::B3DHomMatrix maInvEyeToView;
/// The raster converter for Z-Buffer
- ZBufferRasterConverter3D* mpZBufferRasterConverter3D;
+ std::unique_ptr<ZBufferRasterConverter3D> mpZBufferRasterConverter3D;
/* AA value. Defines how many oversamples will be used in X and Y. Values 0, 1
will switch it off while e.g. 2 will use 2x2 pixels for each pixel to create
@@ -72,7 +73,7 @@ namespace drawinglayer
/* remembered RasterPrimitive3D's which need to be painted back to front
for transparent 3D parts
*/
- std::vector< RasterPrimitive3D >* mpRasterPrimitive3Ds;
+ std::unique_ptr<std::vector< RasterPrimitive3D >> mpRasterPrimitive3Ds;
sal_uInt32 mnStartLine;
sal_uInt32 mnStopLine;
commit 2feb8b8e60a7a6c63e43eeafac562e2ea43cf523
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:07:11 2018 +0200
loplugin:useuniqueptr in SvgRadialAtomPrimitive2D
Change-Id: I00d1772732075848b25eb34d7c4b0386551c7e5f
diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
index 54b750d3df14..0197b4199fb2 100644
--- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
@@ -1049,7 +1049,7 @@ namespace drawinglayer
// check and evtl. set translations
if(!rTranslateA.equal(rTranslateB))
{
- mpTranslate = new VectorPair(rTranslateA, rTranslateB);
+ mpTranslate.reset( new VectorPair(rTranslateA, rTranslateB) );
}
// scale A and B have to be positive
@@ -1093,11 +1093,6 @@ namespace drawinglayer
SvgRadialAtomPrimitive2D::~SvgRadialAtomPrimitive2D()
{
- if(mpTranslate)
- {
- delete mpTranslate;
- mpTranslate = nullptr;
- }
}
bool SvgRadialAtomPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
diff --git a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
index 8bef69e49825..47322f35e0ec 100644
--- a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
@@ -377,7 +377,7 @@ namespace drawinglayer
};
/// Only used when focal is set
- VectorPair* mpTranslate;
+ std::unique_ptr<VectorPair> mpTranslate;
protected:
commit 1f377282dd313bfd85bead0d4ee6394c81b42a6f
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:04:57 2018 +0200
loplugin:useuniqueptr in EMFPPen
Change-Id: Icc50b2ff1d6c7490b67d39aed7c3621b74c03bac
diff --git a/cppcanvas/source/mtfrenderer/emfppen.cxx b/cppcanvas/source/mtfrenderer/emfppen.cxx
index 2bd005e4aab4..aa34a527a33d 100644
--- a/cppcanvas/source/mtfrenderer/emfppen.cxx
+++ b/cppcanvas/source/mtfrenderer/emfppen.cxx
@@ -91,8 +91,6 @@ namespace cppcanvas
EMFPPen::~EMFPPen()
{
- delete customStartCap;
- delete customEndCap;
}
void EMFPPen::SetStrokeWidth(rendering::StrokeAttributes& rStrokeAttributes, ImplRenderer const & rR, const OutDevState& rState)
@@ -267,7 +265,7 @@ namespace cppcanvas
SAL_INFO("cppcanvas.emf", "EMF+\t\tcustomStartCapLen: " << customStartCapLen);
sal_uInt64 const pos = s.Tell();
- customStartCap = new EMFPCustomLineCap();
+ customStartCap.reset( new EMFPCustomLineCap() );
customStartCap->Read(s, rR);
// maybe we don't read everything yet, play it safe ;-)
@@ -282,7 +280,7 @@ namespace cppcanvas
SAL_INFO("cppcanvas.emf", "EMF+\t\tcustomEndCapLen: " << customEndCapLen);
sal_uInt64 const pos = s.Tell();
- customEndCap = new EMFPCustomLineCap();
+ customEndCap.reset( new EMFPCustomLineCap() );
customEndCap->Read(s, rR);
// maybe we don't read everything yet, play it safe ;-)
diff --git a/cppcanvas/source/mtfrenderer/emfppen.hxx b/cppcanvas/source/mtfrenderer/emfppen.hxx
index d5abfa7e823c..75878df4805d 100644
--- a/cppcanvas/source/mtfrenderer/emfppen.hxx
+++ b/cppcanvas/source/mtfrenderer/emfppen.hxx
@@ -52,9 +52,9 @@ namespace cppcanvas
sal_Int32 alignment;
std::vector<float> compoundArray;
sal_Int32 customStartCapLen;
- EMFPCustomLineCap *customStartCap;
+ std::unique_ptr<EMFPCustomLineCap> customStartCap;
sal_Int32 customEndCapLen;
- EMFPCustomLineCap *customEndCap;
+ std::unique_ptr<EMFPCustomLineCap> customEndCap;
EMFPPen();
commit ae745d3c8bd9e9af86a49d13ff401a5f28a7b32d
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:04:01 2018 +0200
loplugin:useuniqueptr in EMFPRegion
Change-Id: I19107173318180ec08864e523f4065181eac00cc
diff --git a/cppcanvas/source/mtfrenderer/emfpregion.cxx b/cppcanvas/source/mtfrenderer/emfpregion.cxx
index efb7effe9800..6c548cd2e9be 100644
--- a/cppcanvas/source/mtfrenderer/emfpregion.cxx
+++ b/cppcanvas/source/mtfrenderer/emfpregion.cxx
@@ -58,10 +58,6 @@ namespace cppcanvas
EMFPRegion::~EMFPRegion()
{
- if (combineMode) {
- delete[] combineMode;
- combineMode = nullptr;
- }
}
void EMFPRegion::Read(SvStream& s)
@@ -77,7 +73,7 @@ namespace cppcanvas
if (parts<0 || sal_uInt32(parts)>SAL_MAX_INT32 / sizeof(sal_Int32))
parts = SAL_MAX_INT32 / sizeof(sal_Int32);
- combineMode = new sal_Int32[parts];
+ combineMode.reset( new sal_Int32[parts] );
for (int i = 0; i < parts; i++) {
s.ReadInt32(combineMode[i]);
diff --git a/cppcanvas/source/mtfrenderer/emfpregion.hxx b/cppcanvas/source/mtfrenderer/emfpregion.hxx
index 876aebcdbd67..5df1639f63d1 100644
--- a/cppcanvas/source/mtfrenderer/emfpregion.hxx
+++ b/cppcanvas/source/mtfrenderer/emfpregion.hxx
@@ -27,7 +27,7 @@ namespace cppcanvas
struct EMFPRegion : public EMFPObject
{
sal_Int32 parts;
- sal_Int32 *combineMode;
+ std::unique_ptr<sal_Int32[]> combineMode;
sal_Int32 initialState;
float ix, iy, iw, ih;
commit 9cc88c41d9b950d6e19d15945eff894d4d18a3dc
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:03:13 2018 +0200
loplugin:useuniqueptr in EMFPBrush
Change-Id: I17fc33cfd7c15734fd961fa76c676424900a4373
diff --git a/cppcanvas/source/mtfrenderer/emfpbrush.cxx b/cppcanvas/source/mtfrenderer/emfpbrush.cxx
index fb8a41c5d846..d46ddd4698cd 100644
--- a/cppcanvas/source/mtfrenderer/emfpbrush.cxx
+++ b/cppcanvas/source/mtfrenderer/emfpbrush.cxx
@@ -67,26 +67,7 @@ namespace cppcanvas
EMFPBrush::~EMFPBrush()
{
- if (blendPositions != nullptr) {
- delete[] blendPositions;
- blendPositions = nullptr;
- }
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list