[Libreoffice-commits] core.git: 17 commits - basic/source cppcanvas/source drawinglayer/source hwpfilter/source idl/inc idl/source include/basic include/drawinglayer include/editeng sfx2/source
Noel Grandin
noel.grandin at collabora.co.uk
Fri Jan 19 06:59:21 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 +---
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 +---
sfx2/source/appl/appdata.cxx | 4
sfx2/source/inc/appdata.hxx | 5 -
43 files changed, 167 insertions(+), 259 deletions(-)
New commits:
commit 74403516c94a49d8878eb5c0224e6994f204cd2a
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 330cae474bedd303e94c9fab991baaa8390f6b53
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 44853cc8be2c7c6174b353e849a757aefa49f604
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 000fa4c4952cdc3d63f91a63eb4b3da83e5990ca
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 24cbc7a1fc857748dfba31b426f786307b779d48
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 59548784486cfa42662490432474431f760dacc1
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 263d7325691f4b0a1bda155f1c53bbcf712e9f09
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 9653ac69f8c9fdfcd353a1b15c701139dd541e9b
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 fb3091bfc73cb321017f47d87dc8cb782b9a58d8
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 dd590fd04f36553262eefd70e5f08c8b23a38c9d
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 9b0a74a4e0fe0c784da62a730d10e8c75e4c7bad
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 f9894d68ea67f5fc5810bfb4ece5d9af0c16749a
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 2b63eea0d4e43ffa23c889519011c870a9a55e58
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 42b80f4ed300b08074ed3a6dd48679afd5af760a
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 6f2db2c124c3054d2895c797f2564cff51bdfdda
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;
- }
- 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;
- }
+ path.reset();
}
void EMFPBrush::Read(SvStream& s, ImplRenderer const & rR)
@@ -149,7 +130,7 @@ namespace cppcanvas
if (surroundColorsNumber<0 || sal_uInt32(surroundColorsNumber)>SAL_MAX_INT32 / sizeof(::Color))
surroundColorsNumber = SAL_MAX_INT32 / sizeof(::Color);
- surroundColors = new ::Color[surroundColorsNumber];
+ surroundColors.reset( new ::Color[surroundColorsNumber] );
for (int i = 0; i < surroundColorsNumber; i++) {
s.ReadUInt32(color);
surroundColors[i] = ::Color(0xff - (color >> 24), (color >> 16) & 0xff, (color >> 8) & 0xff, color & 0xff);
@@ -173,7 +154,7 @@ namespace cppcanvas
SAL_INFO("cppcanvas.emf", "EMF+\tpath (brush path gradient)");
SAL_INFO("cppcanvas.emf", "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, rR);
s.Seek(pos + pathLength);
@@ -190,7 +171,7 @@ namespace cppcanvas
sal_uInt64 const pos = s.Tell();
SAL_INFO("cppcanvas.emf", "EMF+\t use boundary, points: " << boundaryPointCount);
- path = new EMFPPath(boundaryPointCount);
+ path.reset( new EMFPPath(boundaryPointCount) );
path->Read(s, 0x0, rR);
s.Seek(pos + 8 * boundaryPointCount);
@@ -216,8 +197,8 @@ namespace cppcanvas
SAL_INFO("cppcanvas.emf", "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++) {
s.ReadFloat(blendPositions[i]);
SAL_INFO("cppcanvas.emf", "EMF+\tposition[" << i << "]: " << blendPositions[i]);
@@ -235,8 +216,8 @@ namespace cppcanvas
colorblendPoints = SAL_MAX_INT32 / sizeof(float);
if (sal_uInt32(colorblendPoints)>SAL_MAX_INT32 / sizeof(::Color))
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++) {
s.ReadFloat(colorblendPositions[i]);
SAL_INFO("cppcanvas.emf", "EMF+\tposition[" << i << "]: " << colorblendPositions[i]);
@@ -288,8 +269,8 @@ namespace cppcanvas
SAL_INFO("cppcanvas.emf", "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++) {
s.ReadFloat(blendPositions[i]);
SAL_INFO("cppcanvas.emf", "EMF+\tposition[" << i << "]: " << blendPositions[i]);
@@ -307,8 +288,8 @@ namespace cppcanvas
colorblendPoints = SAL_MAX_INT32 / sizeof(float);
if (sal_uInt32(colorblendPoints)>SAL_MAX_INT32 / sizeof(::Color))
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++) {
s.ReadFloat(colorblendPositions[i]);
SAL_INFO("cppcanvas.emf", "EMF+\tposition[" << i << "]: " << colorblendPositions[i]);
diff --git a/cppcanvas/source/mtfrenderer/emfpbrush.hxx b/cppcanvas/source/mtfrenderer/emfpbrush.hxx
index dc1e8d890dc6..f651f837d1ce 100644
--- a/cppcanvas/source/mtfrenderer/emfpbrush.hxx
+++ b/cppcanvas/source/mtfrenderer/emfpbrush.hxx
@@ -105,14 +105,14 @@ namespace cppcanvas
XForm 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 96c85e7d107ad0d79295349f01cd8578ce7daeba
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jan 16 14:02:57 2018 +0200
loplugin:useuniqueptr in hwpfilter
Change-Id: Id276015425ea7de3cf55b9ef21b4e7ce54c2ce47
diff --git a/hwpfilter/source/drawdef.h b/hwpfilter/source/drawdef.h
index f502d1a333fd..00296d8d1704 100644
--- a/hwpfilter/source/drawdef.h
+++ b/hwpfilter/source/drawdef.h
@@ -21,6 +21,7 @@
#define INCLUDED_HWPFILTER_SOURCE_DRAWDEF_H
#include "hwplib.h"
+#include <memory>
class HWPPara;
@@ -228,11 +229,11 @@ struct HWPDrawingObject
HWPDOArc arc;
}
u;
- struct HWPDrawingObject *next;
+ std::unique_ptr<struct HWPDrawingObject> next;
/**
* This exists for container object
*/
- struct HWPDrawingObject *child;
+ std::unique_ptr<struct HWPDrawingObject> child;
int index;
HWPDrawingObject();
~HWPDrawingObject();
diff --git a/hwpfilter/source/drawing.h b/hwpfilter/source/drawing.h
index 64abf44a67d7..806a48748bf7 100644
--- a/hwpfilter/source/drawing.h
+++ b/hwpfilter/source/drawing.h
@@ -355,7 +355,7 @@ static HWPDrawingObject *LoadDrawingObject(void)
}
if (link_info & HDOFILE_HAS_CHILD)
{
- hdo->child = LoadDrawingObject();
+ hdo->child.reset( LoadDrawingObject() );
if (hdo->child == nullptr)
{
goto error;
@@ -364,7 +364,7 @@ static HWPDrawingObject *LoadDrawingObject(void)
if (prev == nullptr)
head = hdo;
else
- prev->next = hdo;
+ prev->next.reset( hdo );
prev = hdo;
}
while (link_info & HDOFILE_HAS_NEXT);
@@ -682,12 +682,6 @@ HWPDrawingObject::HWPDrawingObject()
HWPDrawingObject::~HWPDrawingObject()
{
- if (child)
- delete child;
-
- if (next)
- delete next;
-
if (property.pPara)
FreeParaList(property.pPara);
diff --git a/hwpfilter/source/hwpfile.cxx b/hwpfilter/source/hwpfile.cxx
index 128be0caa7af..13d1416ece4b 100644
--- a/hwpfilter/source/hwpfile.cxx
+++ b/hwpfilter/source/hwpfile.cxx
@@ -61,8 +61,8 @@ HWPFile::HWPFile()
HWPFile::~HWPFile()
{
- delete oledata;
- delete hiodev;
+ oledata.reset();
+ hiodev.reset();
}
int HWPFile::ReadHwpFile(HStream * stream)
@@ -185,9 +185,9 @@ void HWPFile::SetCompressed(bool flag)
HIODev *HWPFile::SetIODevice(HIODev * new_hiodev)
{
- HIODev *old_hiodev = hiodev;
+ HIODev *old_hiodev = hiodev.release();
- hiodev = new_hiodev;
+ hiodev.reset( new_hiodev );
return old_hiodev;
}
@@ -316,8 +316,7 @@ void HWPFile::TagsRead()
}
break;
case FILETAG_OLE_OBJECT:
- delete oledata;
- oledata = new OlePicture(size);
+ oledata.reset( new OlePicture(size) );
oledata->Read(*this);
break;
case FILETAG_HYPERTEXT:
diff --git a/hwpfilter/source/hwpfile.h b/hwpfilter/source/hwpfile.h
index dc170226ea22..0f569d358257 100644
--- a/hwpfilter/source/hwpfile.h
+++ b/hwpfilter/source/hwpfile.h
@@ -273,7 +273,7 @@ class DLLEXPORT HWPFile
unsigned char linenumber;
int info_block_len;
int error_code;
- OlePicture *oledata;
+ std::unique_ptr<OlePicture> oledata;
unsigned char scratch[SAL_MAX_UINT16];
int readdepth;
@@ -281,7 +281,7 @@ class DLLEXPORT HWPFile
/* hwp 파일 이름 */
int m_nCurrentPage;
int m_nMaxSettedPage;
- HIODev *hiodev;
+ std::unique_ptr<HIODev> hiodev;
// read hwp contents
HWPInfo _hwpInfo;
HWPFont _hwpFont;
diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx
index 87f782359bb4..f4b809f48a33 100644
--- a/hwpfilter/source/hwpreader.cxx
+++ b/hwpfilter/source/hwpreader.cxx
@@ -427,12 +427,12 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo )
while( hdo )
{
if( hdo->child )
- makeDrawMiscStyle( hdo->child );
+ makeDrawMiscStyle( hdo->child.get() );
HWPDOProperty *prop = &hdo->property;
if( hdo->type == HWPDO_CONTAINER )
{
- hdo = hdo->next;
+ hdo = hdo->next.get();
continue;
}
@@ -694,7 +694,7 @@ void HwpReader::makeDrawMiscStyle( HWPDrawingObject *hdo )
rendEl( "draw:hatch");
}
}
- hdo = hdo->next;
+ hdo = hdo->next.get();
}
}
@@ -2205,9 +2205,9 @@ void HwpReader::makeDrawStyle( HWPDrawingObject * hdo, FBoxStyle * fstyle)
if( hdo->type == 0 )
{
- makeDrawStyle( hdo->child, fstyle );
+ makeDrawStyle( hdo->child.get(), fstyle );
}
- hdo = hdo->next;
+ hdo = hdo->next.get();
}
}
@@ -4016,7 +4016,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
{
rstartEl("draw:g", mxList.get());
mxList->clear();
- makePictureDRAW(drawobj->child, hbox);
+ makePictureDRAW(drawobj->child.get(), hbox);
rendEl("draw:g");
}
else
@@ -4574,7 +4574,7 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox)
}
}
mxList->clear();
- drawobj = drawobj->next;
+ drawobj = drawobj->next.get();
}
}
commit 61bfcf16dc6e4cedcd82b51a646b89909f035f2d
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 15 16:33:36 2018 +0200
loplugin:useuniqueptr in idl
Change-Id: I3681d119dda85400dbb33c96fab736c262f7ce8a
diff --git a/idl/inc/database.hxx b/idl/inc/database.hxx
index bc4ef2a5e27e..65ef714d939b 100644
--- a/idl/inc/database.hxx
+++ b/idl/inc/database.hxx
@@ -71,7 +71,7 @@ class SvIdlDataBase
sal_uInt32 nUniqueId;
sal_uInt32 nVerbosity;
StringList aIdFileList;
- SvStringHashTable * pIdTable;
+ std::unique_ptr<SvStringHashTable> pIdTable;
SvRefMemberList<SvMetaType *> aTypeList;
SvRefMemberList<SvMetaClass *> aClassList;
diff --git a/idl/inc/globals.hxx b/idl/inc/globals.hxx
index 0e118a16a1e3..033a8f270350 100644
--- a/idl/inc/globals.hxx
+++ b/idl/inc/globals.hxx
@@ -21,6 +21,7 @@
#define INCLUDED_IDL_INC_GLOBALS_HXX
#include "hash.hxx"
+#include <memory>
struct SvGlobalHashNames
{
@@ -68,8 +69,8 @@ struct SvGlobalHashNames
class IdlDll
{
public:
- SvStringHashTable * pHashTable;
- SvGlobalHashNames * pGlobalNames;
+ std::unique_ptr<SvStringHashTable> pHashTable;
+ std::unique_ptr<SvGlobalHashNames> pGlobalNames;
IdlDll();
~IdlDll();
@@ -81,7 +82,7 @@ IdlDll & GetIdlApp();
inline SvStringHashEntry * SvHash_##Name() \
{ \
if( !GetIdlApp().pGlobalNames ) \
- GetIdlApp().pGlobalNames = new SvGlobalHashNames(); \
+ GetIdlApp().pGlobalNames.reset( new SvGlobalHashNames() ); \
return GetIdlApp().pGlobalNames->MM_##Name; \
}
diff --git a/idl/source/prj/command.cxx b/idl/source/prj/command.cxx
index 50d410819c28..740d384add60 100644
--- a/idl/source/prj/command.cxx
+++ b/idl/source/prj/command.cxx
@@ -108,9 +108,9 @@ char const CommandLineSyntax[] =
void Init()
{
if( !GetIdlApp().pHashTable )
- GetIdlApp().pHashTable = new SvStringHashTable;
+ GetIdlApp().pHashTable.reset( new SvStringHashTable );
if( !GetIdlApp().pGlobalNames )
- GetIdlApp().pGlobalNames = new SvGlobalHashNames();
+ GetIdlApp().pGlobalNames.reset( new SvGlobalHashNames() );
}
bool ReadIdl( SvIdlWorkingBase * pDataBase, const SvCommand & rCommand )
diff --git a/idl/source/prj/database.cxx b/idl/source/prj/database.cxx
index 62340e70cb0b..62e209fb3f5f 100644
--- a/idl/source/prj/database.cxx
+++ b/idl/source/prj/database.cxx
@@ -54,8 +54,6 @@ SvIdlDataBase::SvIdlDataBase( const SvCommand& rCmd )
SvIdlDataBase::~SvIdlDataBase()
{
aIdFileList.clear();
-
- delete pIdTable;
}
#define ADD_TYPE( Name ) \
@@ -126,7 +124,7 @@ bool SvIdlDataBase::FindId( const OString& rIdName, sal_uLong * pVal )
void SvIdlDataBase::InsertId( const OString& rIdName, sal_uLong nVal )
{
if( !pIdTable )
- pIdTable = new SvStringHashTable;
+ pIdTable.reset( new SvStringHashTable );
sal_uInt32 nHash;
pIdTable->Insert( rIdName, &nHash )->SetValue( nVal );
diff --git a/idl/source/prj/globals.cxx b/idl/source/prj/globals.cxx
index 965369b1f130..f57445b56828 100644
--- a/idl/source/prj/globals.cxx
+++ b/idl/source/prj/globals.cxx
@@ -41,8 +41,6 @@ IdlDll::IdlDll()
IdlDll::~IdlDll()
{
- delete pGlobalNames;
- delete pHashTable;
}
inline SvStringHashEntry * INS( const OString& rName )
More information about the Libreoffice-commits
mailing list