include/svx/svdundo.hxx | 12 +++++++----- svx/source/svdraw/svdundo.cxx | 36 ++++++++++++++---------------------- 2 files changed, 21 insertions(+), 27 deletions(-)
New commits: commit 71545d500e4b88e960a73d499328504ce99397a8 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Mon Feb 5 13:51:25 2018 +0200 loplugin:useuniqueptr in SdrUndoAttrObj Change-Id: I4174c1f1746dd501ce7428c3c2051dfed7042f7b Reviewed-on: https://gerrit.libreoffice.org/49870 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 9cb4271d0a86..642b67954073 100644 --- a/include/svx/svdundo.hxx +++ b/include/svx/svdundo.hxx @@ -144,8 +144,8 @@ protected: class SVX_DLLPUBLIC SdrUndoAttrObj : public SdrUndoObj { protected: - SfxItemSet* pUndoSet; - SfxItemSet* pRedoSet; + std::unique_ptr<SfxItemSet> pUndoSet; + std::unique_ptr<SfxItemSet> pRedoSet; // FIXME: Or should we better remember the StyleSheetNames? rtl::Reference< SfxStyleSheetBase > mxUndoStyleSheet; @@ -154,13 +154,15 @@ protected: bool bHaveToTakeRedoSet; // When assigning TextItems to a drawing object with text: - OutlinerParaObject* pTextUndo; + std::unique_ptr<OutlinerParaObject> + pTextUndo; // #i8508# // The text rescue mechanism needs also to be implemented for redo actions. - OutlinerParaObject* pTextRedo; + std::unique_ptr<OutlinerParaObject> + pTextRedo; // If we have a group object: - SdrUndoGroup* pUndoGroup; + std::unique_ptr<SdrUndoGroup> pUndoGroup; // Helper to ensure StyleSheet is in pool (provided by SdrModel from SdrObject) static void ensureStyleSheetInStyleSheetPool(SfxStyleSheetBasePool& rStyleSheetPool, SfxStyleSheet& rSheet); diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx index 3f607186f87f..1c6ec236f34b 100644 --- a/svx/source/svdraw/svdundo.cxx +++ b/svx/source/svdraw/svdundo.cxx @@ -262,14 +262,9 @@ void SdrUndoAttrObj::ensureStyleSheetInStyleSheetPool(SfxStyleSheetBasePool& rSt SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSaveText) : SdrUndoObj(rNewObj) - , pUndoSet(nullptr) - , pRedoSet(nullptr) , mxUndoStyleSheet() , mxRedoStyleSheet() , bHaveToTakeRedoSet(true) - , pTextUndo(nullptr) - , pTextRedo(nullptr) - , pUndoGroup(nullptr) { bStyleSheet = bStyleSheet1; @@ -280,7 +275,7 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave if(bIsGroup) { // it's a group object! - 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) @@ -292,27 +287,27 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave if(!bIsGroup || bIs3DScene) { - pUndoSet = new SfxItemSet(pObj->GetMergedItemSet()); + pUndoSet.reset( new SfxItemSet(pObj->GetMergedItemSet()) ); if(bStyleSheet) mxUndoStyleSheet = pObj->GetStyleSheet(); if(bSaveText) { - pTextUndo = pObj->GetOutlinerParaObject(); - if(pTextUndo) - pTextUndo = new OutlinerParaObject(*pTextUndo); + auto p = pObj->GetOutlinerParaObject(); + if(p) + pTextUndo.reset( new OutlinerParaObject(*p) ); } } } SdrUndoAttrObj::~SdrUndoAttrObj() { - delete pUndoSet; - delete pRedoSet; - delete pUndoGroup; - delete pTextUndo; - delete pTextRedo; + pUndoSet.reset(); + pRedoSet.reset(); + pUndoGroup.reset(); + pTextUndo.reset(); + pTextRedo.reset(); } void SdrUndoAttrObj::Undo() @@ -329,9 +324,7 @@ void SdrUndoAttrObj::Undo() { bHaveToTakeRedoSet = false; - delete pRedoSet; - - pRedoSet = new SfxItemSet(pObj->GetMergedItemSet()); + pRedoSet.reset( new SfxItemSet(pObj->GetMergedItemSet()) ); if(bStyleSheet) mxRedoStyleSheet = pObj->GetStyleSheet(); @@ -339,10 +332,9 @@ void SdrUndoAttrObj::Undo() if(pTextUndo) { // #i8508# - pTextRedo = pObj->GetOutlinerParaObject(); - - if(pTextRedo) - pTextRedo = new OutlinerParaObject(*pTextRedo); + auto p = pObj->GetOutlinerParaObject(); + if(p) + pTextRedo.reset( new OutlinerParaObject(*p) ); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits