summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-01-30 12:30:17 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-02-06 10:39:21 +0100
commiteff1e58839df4f4cc7d2ff239dd818880372a1a0 (patch)
treeeb94326c09e24c28617ffe1c3f6fd553894f6cf7 /svx
parent7214a912f7ce1a1c1183f9eae6181656cfadea30 (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.hxx7
-rw-r--r--svx/source/svdraw/svdobj.cxx26
-rw-r--r--svx/source/svdraw/svdobjplusdata.cxx10
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#