[Libreoffice-commits] core.git: svx/source

Noel Grandin noel.grandin at collabora.co.uk
Tue Feb 6 09:39:42 UTC 2018


 svx/source/inc/svdobjplusdata.hxx    |    7 ++++---
 svx/source/svdraw/svdobj.cxx         |   26 +++++++++++---------------
 svx/source/svdraw/svdobjplusdata.cxx |   10 +++++-----
 3 files changed, 20 insertions(+), 23 deletions(-)

New commits:
commit eff1e58839df4f4cc7d2ff239dd818880372a1a0
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Tue Jan 30 12:30:17 2018 +0200

    loplugin:useuniqueptr in SdrObjPlusData
    
    Change-Id: Iae857bcc98a3bfeaab9632651c8a1157a1520a51
    Reviewed-on: https://gerrit.libreoffice.org/49268
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

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#


More information about the Libreoffice-commits mailing list