diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-01-30 12:30:17 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-02-06 10:39:21 +0100 |
commit | eff1e58839df4f4cc7d2ff239dd818880372a1a0 (patch) | |
tree | eb94326c09e24c28617ffe1c3f6fd553894f6cf7 /svx | |
parent | 7214a912f7ce1a1c1183f9eae6181656cfadea30 (diff) |
loplugin:useuniqueptr in SdrObjPlusData
Change-Id: Iae857bcc98a3bfeaab9632651c8a1157a1520a51
Reviewed-on: https://gerrit.libreoffice.org/49268
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/inc/svdobjplusdata.hxx | 7 | ||||
-rw-r--r-- | svx/source/svdraw/svdobj.cxx | 26 | ||||
-rw-r--r-- | svx/source/svdraw/svdobjplusdata.cxx | 10 |
3 files changed, 20 insertions, 23 deletions
diff --git a/svx/source/inc/svdobjplusdata.hxx b/svx/source/inc/svdobjplusdata.hxx index e36e51a6e86e..c5d0596bab29 100644 --- a/svx/source/inc/svdobjplusdata.hxx +++ b/svx/source/inc/svdobjplusdata.hxx @@ -11,6 +11,7 @@ #define INCLUDED_SVX_SVDOBJPLUSDATA_HXX #include <rtl/ustring.hxx> +#include <memory> class SdrObject; class SfxBroadcaster; @@ -22,9 +23,9 @@ class SdrObjPlusData final { friend class SdrObject; - SfxBroadcaster* pBroadcast; // broadcaster, if this object is referenced (bVirtObj=true). Also for connectors etc. - SdrObjUserDataList* pUserDataList; // application specific data - SdrGluePointList* pGluePoints; // glue points for glueing object connectors + std::unique_ptr<SfxBroadcaster> pBroadcast; // broadcaster, if this object is referenced (bVirtObj=true). Also for connectors etc. + std::unique_ptr<SdrObjUserDataList> pUserDataList; // application specific data + std::unique_ptr<SdrGluePointList> pGluePoints; // glue points for glueing object connectors // #i68101# // object name, title and description diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 7677376bf48b..32a73f6a5fe6 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -585,7 +585,7 @@ void SdrObject::SetLayer(SdrLayerID nLayer) void SdrObject::AddListener(SfxListener& rListener) { ImpForcePlusData(); - if (pPlusData->pBroadcast==nullptr) pPlusData->pBroadcast=new SfxBroadcaster; + if (pPlusData->pBroadcast==nullptr) pPlusData->pBroadcast.reset(new SfxBroadcaster); // SdrEdgeObj may be connected to same SdrObject on both ends so allow it // to listen twice @@ -598,15 +598,14 @@ void SdrObject::RemoveListener(SfxListener& rListener) if (pPlusData!=nullptr && pPlusData->pBroadcast!=nullptr) { rListener.EndListening(*pPlusData->pBroadcast); if (!pPlusData->pBroadcast->HasListeners()) { - delete pPlusData->pBroadcast; - pPlusData->pBroadcast=nullptr; + pPlusData->pBroadcast.reset(); } } } const SfxBroadcaster* SdrObject::GetBroadcaster() const { - return pPlusData!=nullptr ? pPlusData->pBroadcast : nullptr; + return pPlusData!=nullptr ? pPlusData->pBroadcast.get() : nullptr; } void SdrObject::AddReference(SdrVirtObj& rVrtObj) @@ -986,8 +985,7 @@ SdrObject& SdrObject::operator=(const SdrObject& rObj) pPlusData=rObj.pPlusData->Clone(this); } if (pPlusData!=nullptr && pPlusData->pBroadcast!=nullptr) { - delete pPlusData->pBroadcast; // broadcaster isn't copied - pPlusData->pBroadcast=nullptr; + pPlusData->pBroadcast.reset(); // broadcaster isn't copied } delete pGrabBagItem; @@ -1881,12 +1879,11 @@ void SdrObject::RestGeoData(const SdrObjGeoData& rGeo) if (pPlusData->pGluePoints!=nullptr) { *pPlusData->pGluePoints=*rGeo.pGPL; } else { - pPlusData->pGluePoints=new SdrGluePointList(*rGeo.pGPL); + pPlusData->pGluePoints.reset(new SdrGluePointList(*rGeo.pGPL)); } } else { if (pPlusData!=nullptr && pPlusData->pGluePoints!=nullptr) { - delete pPlusData->pGluePoints; - pPlusData->pGluePoints=nullptr; + pPlusData->pGluePoints.reset(); } } } @@ -2249,7 +2246,7 @@ SdrGluePoint SdrObject::GetCornerGluePoint(sal_uInt16 nPosNum) const const SdrGluePointList* SdrObject::GetGluePointList() const { - if (pPlusData!=nullptr) return pPlusData->pGluePoints; + if (pPlusData!=nullptr) return pPlusData->pGluePoints.get(); return nullptr; } @@ -2258,9 +2255,9 @@ SdrGluePointList* SdrObject::ForceGluePointList() { ImpForcePlusData(); if (pPlusData->pGluePoints==nullptr) { - pPlusData->pGluePoints=new SdrGluePointList; + pPlusData->pGluePoints.reset(new SdrGluePointList); } - return pPlusData->pGluePoints; + return pPlusData->pGluePoints.get(); } void SdrObject::SetGlueReallyAbsolute(bool bOn) @@ -2680,7 +2677,7 @@ void SdrObject::AppendUserData(SdrObjUserData* pData) ImpForcePlusData(); if (!pPlusData->pUserDataList) - pPlusData->pUserDataList = new SdrObjUserDataList; + pPlusData->pUserDataList.reset( new SdrObjUserDataList ); pPlusData->pUserDataList->AppendUserData(pData); } @@ -2691,8 +2688,7 @@ void SdrObject::DeleteUserData(sal_uInt16 nNum) if (nNum<nCount) { pPlusData->pUserDataList->DeleteUserData(nNum); if (nCount==1) { - delete pPlusData->pUserDataList; - pPlusData->pUserDataList=nullptr; + pPlusData->pUserDataList.reset(); } } else { OSL_FAIL("SdrObject::DeleteUserData(): Invalid Index."); diff --git a/svx/source/svdraw/svdobjplusdata.cxx b/svx/source/svdraw/svdobjplusdata.cxx index 91fa577b9b52..0cfaba0fd043 100644 --- a/svx/source/svdraw/svdobjplusdata.cxx +++ b/svx/source/svdraw/svdobjplusdata.cxx @@ -24,9 +24,9 @@ SdrObjPlusData::SdrObjPlusData(): SdrObjPlusData::~SdrObjPlusData() { - delete pBroadcast; - delete pUserDataList; - delete pGluePoints; + pBroadcast.reset(); + pUserDataList.reset(); + pGluePoints.reset(); } SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const @@ -35,7 +35,7 @@ SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const if (pUserDataList!=nullptr) { sal_uInt16 nCount=pUserDataList->GetUserDataCount(); if (nCount!=0) { - pNeuPlusData->pUserDataList=new SdrObjUserDataList; + pNeuPlusData->pUserDataList.reset(new SdrObjUserDataList); for (sal_uInt16 i=0; i<nCount; i++) { SdrObjUserData* pNeuUserData=pUserDataList->GetUserData(i).Clone(pObj1); if (pNeuUserData!=nullptr) { @@ -46,7 +46,7 @@ SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const } } } - if (pGluePoints!=nullptr) pNeuPlusData->pGluePoints=new SdrGluePointList(*pGluePoints); + if (pGluePoints!=nullptr) pNeuPlusData->pGluePoints.reset(new SdrGluePointList(*pGluePoints)); // MtfAnimator isn't copied either // #i68101# |