sd: Use std::unique_ptr<> as SdUndoGroup owns SdUndoActions
Change-Id: Iaba3f3cf91e30b549e1b8ce3e54c0ef50df9f1d4
Reviewed-on: https://gerrit.libreoffice.org/39823
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
diff --git a/sd/source/ui/func/sdundogr.cxx b/sd/source/ui/func/sdundogr.cxx
index 963e7dd..feb9c7b 100644
--- a/sd/source/ui/func/sdundogr.cxx
+++ b/sd/source/ui/func/sdundogr.cxx
@@ -20,15 +20,7 @@
#include "sdundogr.hxx"
SdUndoGroup::~SdUndoGroup()
{
size_t nLast = aCtn.size();
for (size_t nAction = 0; nAction < nLast; nAction++)
{
delete aCtn[nAction];
}
aCtn.clear();
}
SdUndoGroup::~SdUndoGroup() = default;
bool SdUndoGroup::Merge( SfxUndoAction* pNextAction )
{
@@ -73,7 +65,7 @@ void SdUndoGroup::Redo()
void SdUndoGroup::AddAction(SdUndoAction* pAction)
{
aCtn.push_back(pAction);
aCtn.emplace_back(pAction);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/inc/sdundogr.hxx b/sd/source/ui/inc/sdundogr.hxx
index c629edf..160b947 100644
--- a/sd/source/ui/inc/sdundogr.hxx
+++ b/sd/source/ui/inc/sdundogr.hxx
@@ -24,15 +24,16 @@
#include "sdundo.hxx"
#include "sddllapi.h"
#include <memory>
#include <vector>
class SD_DLLPUBLIC SdUndoGroup : public SdUndoAction
{
std::vector<SdUndoAction*> aCtn;
std::vector<std::unique_ptr<SdUndoAction>> aCtn;
public:
SdUndoGroup(SdDrawDocument* pSdDrawDocument)
: SdUndoAction(pSdDrawDocument),
aCtn() {}
: SdUndoAction(pSdDrawDocument)
{}
virtual ~SdUndoGroup() override;
virtual bool Merge( SfxUndoAction* pNextAction ) override;