Kaydet (Commit) eff1e588 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in SdrObjPlusData

Change-Id: Iae857bcc98a3bfeaab9632651c8a1157a1520a51
Reviewed-on: https://gerrit.libreoffice.org/49268Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 7214a912
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#define INCLUDED_SVX_SVDOBJPLUSDATA_HXX #define INCLUDED_SVX_SVDOBJPLUSDATA_HXX
#include <rtl/ustring.hxx> #include <rtl/ustring.hxx>
#include <memory>
class SdrObject; class SdrObject;
class SfxBroadcaster; class SfxBroadcaster;
...@@ -22,9 +23,9 @@ class SdrObjPlusData final ...@@ -22,9 +23,9 @@ class SdrObjPlusData final
{ {
friend class SdrObject; friend class SdrObject;
SfxBroadcaster* pBroadcast; // broadcaster, if this object is referenced (bVirtObj=true). Also for connectors etc. std::unique_ptr<SfxBroadcaster> pBroadcast; // broadcaster, if this object is referenced (bVirtObj=true). Also for connectors etc.
SdrObjUserDataList* pUserDataList; // application specific data std::unique_ptr<SdrObjUserDataList> pUserDataList; // application specific data
SdrGluePointList* pGluePoints; // glue points for glueing object connectors std::unique_ptr<SdrGluePointList> pGluePoints; // glue points for glueing object connectors
// #i68101# // #i68101#
// object name, title and description // object name, title and description
......
...@@ -585,7 +585,7 @@ void SdrObject::SetLayer(SdrLayerID nLayer) ...@@ -585,7 +585,7 @@ void SdrObject::SetLayer(SdrLayerID nLayer)
void SdrObject::AddListener(SfxListener& rListener) void SdrObject::AddListener(SfxListener& rListener)
{ {
ImpForcePlusData(); 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 // SdrEdgeObj may be connected to same SdrObject on both ends so allow it
// to listen twice // to listen twice
...@@ -598,15 +598,14 @@ void SdrObject::RemoveListener(SfxListener& rListener) ...@@ -598,15 +598,14 @@ void SdrObject::RemoveListener(SfxListener& rListener)
if (pPlusData!=nullptr && pPlusData->pBroadcast!=nullptr) { if (pPlusData!=nullptr && pPlusData->pBroadcast!=nullptr) {
rListener.EndListening(*pPlusData->pBroadcast); rListener.EndListening(*pPlusData->pBroadcast);
if (!pPlusData->pBroadcast->HasListeners()) { if (!pPlusData->pBroadcast->HasListeners()) {
delete pPlusData->pBroadcast; pPlusData->pBroadcast.reset();
pPlusData->pBroadcast=nullptr;
} }
} }
} }
const SfxBroadcaster* SdrObject::GetBroadcaster() const const SfxBroadcaster* SdrObject::GetBroadcaster() const
{ {
return pPlusData!=nullptr ? pPlusData->pBroadcast : nullptr; return pPlusData!=nullptr ? pPlusData->pBroadcast.get() : nullptr;
} }
void SdrObject::AddReference(SdrVirtObj& rVrtObj) void SdrObject::AddReference(SdrVirtObj& rVrtObj)
...@@ -986,8 +985,7 @@ SdrObject& SdrObject::operator=(const SdrObject& rObj) ...@@ -986,8 +985,7 @@ SdrObject& SdrObject::operator=(const SdrObject& rObj)
pPlusData=rObj.pPlusData->Clone(this); pPlusData=rObj.pPlusData->Clone(this);
} }
if (pPlusData!=nullptr && pPlusData->pBroadcast!=nullptr) { if (pPlusData!=nullptr && pPlusData->pBroadcast!=nullptr) {
delete pPlusData->pBroadcast; // broadcaster isn't copied pPlusData->pBroadcast.reset(); // broadcaster isn't copied
pPlusData->pBroadcast=nullptr;
} }
delete pGrabBagItem; delete pGrabBagItem;
...@@ -1881,12 +1879,11 @@ void SdrObject::RestGeoData(const SdrObjGeoData& rGeo) ...@@ -1881,12 +1879,11 @@ void SdrObject::RestGeoData(const SdrObjGeoData& rGeo)
if (pPlusData->pGluePoints!=nullptr) { if (pPlusData->pGluePoints!=nullptr) {
*pPlusData->pGluePoints=*rGeo.pGPL; *pPlusData->pGluePoints=*rGeo.pGPL;
} else { } else {
pPlusData->pGluePoints=new SdrGluePointList(*rGeo.pGPL); pPlusData->pGluePoints.reset(new SdrGluePointList(*rGeo.pGPL));
} }
} else { } else {
if (pPlusData!=nullptr && pPlusData->pGluePoints!=nullptr) { if (pPlusData!=nullptr && pPlusData->pGluePoints!=nullptr) {
delete pPlusData->pGluePoints; pPlusData->pGluePoints.reset();
pPlusData->pGluePoints=nullptr;
} }
} }
} }
...@@ -2249,7 +2246,7 @@ SdrGluePoint SdrObject::GetCornerGluePoint(sal_uInt16 nPosNum) const ...@@ -2249,7 +2246,7 @@ SdrGluePoint SdrObject::GetCornerGluePoint(sal_uInt16 nPosNum) const
const SdrGluePointList* SdrObject::GetGluePointList() const const SdrGluePointList* SdrObject::GetGluePointList() const
{ {
if (pPlusData!=nullptr) return pPlusData->pGluePoints; if (pPlusData!=nullptr) return pPlusData->pGluePoints.get();
return nullptr; return nullptr;
} }
...@@ -2258,9 +2255,9 @@ SdrGluePointList* SdrObject::ForceGluePointList() ...@@ -2258,9 +2255,9 @@ SdrGluePointList* SdrObject::ForceGluePointList()
{ {
ImpForcePlusData(); ImpForcePlusData();
if (pPlusData->pGluePoints==nullptr) { 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) void SdrObject::SetGlueReallyAbsolute(bool bOn)
...@@ -2680,7 +2677,7 @@ void SdrObject::AppendUserData(SdrObjUserData* pData) ...@@ -2680,7 +2677,7 @@ void SdrObject::AppendUserData(SdrObjUserData* pData)
ImpForcePlusData(); ImpForcePlusData();
if (!pPlusData->pUserDataList) if (!pPlusData->pUserDataList)
pPlusData->pUserDataList = new SdrObjUserDataList; pPlusData->pUserDataList.reset( new SdrObjUserDataList );
pPlusData->pUserDataList->AppendUserData(pData); pPlusData->pUserDataList->AppendUserData(pData);
} }
...@@ -2691,8 +2688,7 @@ void SdrObject::DeleteUserData(sal_uInt16 nNum) ...@@ -2691,8 +2688,7 @@ void SdrObject::DeleteUserData(sal_uInt16 nNum)
if (nNum<nCount) { if (nNum<nCount) {
pPlusData->pUserDataList->DeleteUserData(nNum); pPlusData->pUserDataList->DeleteUserData(nNum);
if (nCount==1) { if (nCount==1) {
delete pPlusData->pUserDataList; pPlusData->pUserDataList.reset();
pPlusData->pUserDataList=nullptr;
} }
} else { } else {
OSL_FAIL("SdrObject::DeleteUserData(): Invalid Index."); OSL_FAIL("SdrObject::DeleteUserData(): Invalid Index.");
......
...@@ -24,9 +24,9 @@ SdrObjPlusData::SdrObjPlusData(): ...@@ -24,9 +24,9 @@ SdrObjPlusData::SdrObjPlusData():
SdrObjPlusData::~SdrObjPlusData() SdrObjPlusData::~SdrObjPlusData()
{ {
delete pBroadcast; pBroadcast.reset();
delete pUserDataList; pUserDataList.reset();
delete pGluePoints; pGluePoints.reset();
} }
SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const
...@@ -35,7 +35,7 @@ SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const ...@@ -35,7 +35,7 @@ SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const
if (pUserDataList!=nullptr) { if (pUserDataList!=nullptr) {
sal_uInt16 nCount=pUserDataList->GetUserDataCount(); sal_uInt16 nCount=pUserDataList->GetUserDataCount();
if (nCount!=0) { if (nCount!=0) {
pNeuPlusData->pUserDataList=new SdrObjUserDataList; pNeuPlusData->pUserDataList.reset(new SdrObjUserDataList);
for (sal_uInt16 i=0; i<nCount; i++) { for (sal_uInt16 i=0; i<nCount; i++) {
SdrObjUserData* pNeuUserData=pUserDataList->GetUserData(i).Clone(pObj1); SdrObjUserData* pNeuUserData=pUserDataList->GetUserData(i).Clone(pObj1);
if (pNeuUserData!=nullptr) { if (pNeuUserData!=nullptr) {
...@@ -46,7 +46,7 @@ SdrObjPlusData* SdrObjPlusData::Clone(SdrObject* pObj1) const ...@@ -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 // MtfAnimator isn't copied either
// #i68101# // #i68101#
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment