include/svx/svdtext.hxx | 3 ++- include/svx/svdundo.hxx | 6 +++--- svx/source/svdraw/svdtext.cxx | 22 ++++++++-------------- svx/source/svdraw/svdundo.cxx | 19 +++++++------------ 4 files changed, 20 insertions(+), 30 deletions(-)
New commits: commit c4257244afa0490c18a43ec2039a11f1c48935cc Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Mon Feb 5 11:33:20 2018 +0200 loplugin:useuniqueptr in SdrText Change-Id: I23cc319707132c28725acdb8be0bea275025b9e5 Reviewed-on: https://gerrit.libreoffice.org/49332 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/svx/svdtext.hxx b/include/svx/svdtext.hxx index f16e16edd4e1..c5c8831841c0 100644 --- a/include/svx/svdtext.hxx +++ b/include/svx/svdtext.hxx @@ -23,6 +23,7 @@ #include <sal/types.h> #include <svx/svxdllapi.h> #include <tools/weakbase.hxx> +#include <memory> class OutlinerParaObject; @@ -73,7 +74,7 @@ protected: virtual SfxStyleSheet* GetStyleSheet() const; private: - OutlinerParaObject* mpOutlinerParaObject; + std::unique_ptr<OutlinerParaObject> mpOutlinerParaObject; SdrTextObj& mrObject; SdrModel* mpModel; bool mbPortionInfoChecked; diff --git a/svx/source/svdraw/svdtext.cxx b/svx/source/svdraw/svdtext.cxx index 48621a84560d..a4875dc20a1f 100644 --- a/svx/source/svdraw/svdtext.cxx +++ b/svx/source/svdraw/svdtext.cxx @@ -40,7 +40,6 @@ SdrText::SdrText( SdrTextObj& rObject, OutlinerParaObject* pOutlinerParaObject / SdrText::~SdrText() { clearWeak(); - delete mpOutlinerParaObject; } void SdrText::CheckPortionInfo( SdrOutliner& rOutliner ) @@ -57,8 +56,7 @@ void SdrText::CheckPortionInfo( SdrOutliner& rOutliner ) if(mpOutlinerParaObject!=nullptr && rOutliner.ShouldCreateBigTextObject()) { // #i102062# MemoryLeak closed - delete mpOutlinerParaObject; - mpOutlinerParaObject = rOutliner.CreateParaObject(); + mpOutlinerParaObject.reset( rOutliner.CreateParaObject() ); } } } @@ -76,19 +74,17 @@ const SfxItemSet& SdrText::GetItemSet() const void SdrText::SetOutlinerParaObject( OutlinerParaObject* pTextObject ) { - if( mpOutlinerParaObject != pTextObject ) + if( mpOutlinerParaObject.get() != pTextObject ) { if( mpModel ) { // Update HitTestOutliner const SdrTextObj* pTestObj = mpModel->GetHitTestOutliner().GetTextObj(); - if( pTestObj && pTestObj->GetOutlinerParaObject() == mpOutlinerParaObject ) + if( pTestObj && pTestObj->GetOutlinerParaObject() == mpOutlinerParaObject.get() ) mpModel->GetHitTestOutliner().SetTextObj( nullptr ); } - delete mpOutlinerParaObject; - - mpOutlinerParaObject = pTextObject; + mpOutlinerParaObject.reset(pTextObject); mbPortionInfoChecked = false; } @@ -96,7 +92,7 @@ void SdrText::SetOutlinerParaObject( OutlinerParaObject* pTextObject ) OutlinerParaObject* SdrText::GetOutlinerParaObject() const { - return mpOutlinerParaObject; + return mpOutlinerParaObject.get(); } /** returns the current OutlinerParaObject and removes it from this instance */ @@ -106,13 +102,12 @@ OutlinerParaObject* SdrText::RemoveOutlinerParaObject() { // Update HitTestOutliner const SdrTextObj* pTestObj = mpModel->GetHitTestOutliner().GetTextObj(); - if( pTestObj && pTestObj->GetOutlinerParaObject() == mpOutlinerParaObject ) + if( pTestObj && pTestObj->GetOutlinerParaObject() == mpOutlinerParaObject.get() ) mpModel->GetHitTestOutliner().SetTextObj( nullptr ); } - OutlinerParaObject* pOPO = mpOutlinerParaObject; + OutlinerParaObject* pOPO = mpOutlinerParaObject.release(); - mpOutlinerParaObject = nullptr; mbPortionInfoChecked = false; return pOPO; @@ -151,8 +146,7 @@ void SdrText::SetModel( SdrModel* pNewModel ) // now use the Outliner, etc. so the above SetAttr can work at all SdrOutliner& rOutliner = mrObject.ImpGetDrawOutliner(); rOutliner.SetText(*mpOutlinerParaObject); - delete mpOutlinerParaObject; - mpOutlinerParaObject=nullptr; + mpOutlinerParaObject.reset(); if (bScaleUnitChanged) { Fraction aMetricFactor=GetMapFactor(aOldUnit,aNewUnit).X(); commit afeda72187e69d7bc8d7e37d98cce7601e2ffde8 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Mon Feb 5 11:10:31 2018 +0200 loplugin:useuniqueptr in SdrUndoGeoObj Change-Id: I8b48642a3a6ab4d94c1b58f8dae3589e703612b1 Reviewed-on: https://gerrit.libreoffice.org/49329 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx index 5fd24db225d5..793782d37ed1 100644 --- a/include/svx/svdundo.hxx +++ b/include/svx/svdundo.hxx @@ -207,10 +207,10 @@ public: class SVX_DLLPUBLIC SdrUndoGeoObj : public SdrUndoObj { protected: - SdrObjGeoData* pUndoGeo; - SdrObjGeoData* pRedoGeo; + std::unique_ptr<SdrObjGeoData> pUndoGeo; + std::unique_ptr<SdrObjGeoData> pRedoGeo; // If we have a group object: - SdrUndoGroup* pUndoGroup; + std::unique_ptr<SdrUndoGroup> pUndoGroup; /// If we have a table object, should its layout change? bool mbSkipChangeLayout; diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx index ecc2c78d90dd..ba2bff175356 100644 --- a/svx/source/svdraw/svdundo.cxx +++ b/svx/source/svdraw/svdundo.cxx @@ -581,9 +581,6 @@ OUString SdrUndoMoveObj::GetSdrRepeatComment(SdrView& /*rView*/) const SdrUndoGeoObj::SdrUndoGeoObj(SdrObject& rNewObj) : SdrUndoObj(rNewObj) - , pUndoGeo(nullptr) - , pRedoGeo(nullptr) - , pUndoGroup(nullptr) , mbSkipChangeLayout(false) { SdrObjList* pOL=rNewObj.GetSubList(); @@ -592,7 +589,7 @@ SdrUndoGeoObj::SdrUndoGeoObj(SdrObject& rNewObj) // this is a group object! // If this were 3D scene, we'd only add an Undo for the scene itself // (which we do elsewhere). - pUndoGroup=new SdrUndoGroup(*pObj->GetModel()); + pUndoGroup.reset(new SdrUndoGroup(*pObj->GetModel())); const size_t nObjCount = pOL->GetObjCount(); for (size_t nObjNum = 0; nObjNum<nObjCount; ++nObjNum) { pUndoGroup->AddAction(new SdrUndoGeoObj(*pOL->GetObj(nObjNum))); @@ -600,15 +597,15 @@ SdrUndoGeoObj::SdrUndoGeoObj(SdrObject& rNewObj) } else { - pUndoGeo=pObj->GetGeoData(); + pUndoGeo.reset(pObj->GetGeoData()); } } SdrUndoGeoObj::~SdrUndoGeoObj() { - delete pUndoGeo; - delete pRedoGeo; - delete pUndoGroup; + pUndoGeo.reset(); + pRedoGeo.reset(); + pUndoGroup.reset(); } void SdrUndoGeoObj::Undo() @@ -625,8 +622,7 @@ void SdrUndoGeoObj::Undo() } else { - delete pRedoGeo; - pRedoGeo=pObj->GetGeoData(); + pRedoGeo.reset(pObj->GetGeoData()); auto pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pObj); if (pTableObj && mbSkipChangeLayout) @@ -648,8 +644,7 @@ void SdrUndoGeoObj::Redo() } else { - delete pUndoGeo; - pUndoGeo=pObj->GetGeoData(); + pUndoGeo.reset(pObj->GetGeoData()); pObj->SetGeoData(*pRedoGeo); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits