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;