[Libreoffice-commits] core.git: 8 commits - editeng/source extensions/source hwpfilter/source include/editeng include/sax include/sfx2 include/svl include/svtools sax/source sc/inc sc/qa sc/source sd/source sfx2/source svl/source svtools/source

Noel Grandin noel at peralex.com
Tue Nov 17 22:38:19 PST 2015


 editeng/source/editeng/editobj.cxx               |    1 -
 editeng/source/editeng/fieldupdater.cxx          |    1 -
 editeng/source/items/frmitems.cxx                |    1 -
 editeng/source/misc/svxacorr.cxx                 |    1 -
 editeng/source/uno/unofield.cxx                  |    1 -
 extensions/source/abpilot/datasourcehandling.cxx |    1 -
 extensions/source/abpilot/datasourcehandling.hxx |    3 ++-
 hwpfilter/source/attributes.cxx                  |    9 ++++-----
 hwpfilter/source/attributes.hxx                  |    9 ++-------
 include/editeng/brushitem.hxx                    |    3 ++-
 include/editeng/editobj.hxx                      |    3 ++-
 include/editeng/fieldupdater.hxx                 |    3 ++-
 include/editeng/svxacorr.hxx                     |    2 +-
 include/editeng/unofield.hxx                     |    3 ++-
 include/sax/fastparser.hxx                       |    3 ++-
 include/sfx2/docfac.hxx                          |    3 ++-
 include/sfx2/fcontnr.hxx                         |    3 ++-
 include/sfx2/linksrc.hxx                         |    3 ++-
 include/sfx2/lnkbase.hxx                         |    3 ++-
 include/svl/SfxBroadcaster.hxx                   |    3 ++-
 include/svl/gridprinter.hxx                      |    3 ++-
 include/svl/inethist.hxx                         |    3 ++-
 include/svl/itemprop.hxx                         |    5 +++--
 include/svl/lstner.hxx                           |    3 ++-
 include/svl/numuno.hxx                           |    3 ++-
 include/svl/sharedstringpool.hxx                 |    3 ++-
 include/svl/stylepool.hxx                        |    2 +-
 include/svl/undo.hxx                             |    4 ++--
 include/svtools/colorcfg.hxx                     |    3 ++-
 include/svtools/embedhlp.hxx                     |    3 ++-
 include/svtools/extcolorcfg.hxx                  |    3 ++-
 include/svtools/fontsubstconfig.hxx              |    3 ++-
 include/svtools/scriptedtext.hxx                 |    3 ++-
 include/svtools/svlbitm.hxx                      |    2 +-
 include/svtools/templatefoldercache.hxx          |    3 ++-
 include/svtools/transfer.hxx                     |    3 ++-
 sax/source/expatwrap/attrlistimpl.cxx            |    7 +++----
 sax/source/expatwrap/attrlistimpl.hxx            |    3 ++-
 sax/source/fastparser/fastparser.cxx             |    1 -
 sc/inc/arealink.hxx                              |    3 ++-
 sc/inc/bulkdatahint.hxx                          |    3 ++-
 sc/inc/cellvalues.hxx                            |    5 +++--
 sc/inc/documentimport.hxx                        |    3 ++-
 sc/inc/documentlinkmgr.hxx                       |    3 ++-
 sc/inc/formulacell.hxx                           |    3 ++-
 sc/inc/listenerquery.hxx                         |    3 ++-
 sc/inc/scmatrix.hxx                              |    2 +-
 sc/inc/tablink.hxx                               |    3 ++-
 sc/qa/unit/ucalc.cxx                             |    1 -
 sc/qa/unit/ucalc.hxx                             |    3 ++-
 sc/source/core/data/cellvalues.cxx               |    2 --
 sc/source/core/data/documentimport.cxx           |    2 +-
 sc/source/core/data/formulacell.cxx              |    1 -
 sc/source/core/tool/bulkdatahint.cxx             |    1 -
 sc/source/core/tool/listenerquery.cxx            |    1 -
 sc/source/core/tool/scmatrix.cxx                 |    1 -
 sc/source/filter/inc/revisionfragment.hxx        |    5 +++--
 sc/source/filter/oox/revisionfragment.cxx        |    2 --
 sc/source/ui/docshell/arealink.cxx               |    1 -
 sc/source/ui/docshell/documentlinkmgr.cxx        |    1 -
 sc/source/ui/docshell/tablink.cxx                |    1 -
 sc/source/ui/inc/cellsh.hxx                      |    3 ++-
 sc/source/ui/view/cellsh.cxx                     |    1 -
 sd/source/filter/html/buttonset.cxx              |    1 -
 sd/source/filter/html/buttonset.hxx              |    3 ++-
 sfx2/source/appl/linksrc.cxx                     |    1 -
 sfx2/source/appl/lnkbase2.cxx                    |    9 ++++-----
 sfx2/source/bastyp/fltfnc.cxx                    |    3 +--
 sfx2/source/doc/docfac.cxx                       |    2 --
 svl/source/items/itemprop.cxx                    |    4 +---
 svl/source/items/stylepool.cxx                   |    3 ++-
 svl/source/misc/gridprinter.cxx                  |    1 -
 svl/source/misc/inethist.cxx                     |    1 -
 svl/source/misc/sharedstringpool.cxx             |    1 -
 svl/source/notify/SfxBroadcaster.cxx             |    2 --
 svl/source/notify/lstner.cxx                     |    2 --
 svl/source/numbers/numuno.cxx                    |    5 ++---
 svl/source/undo/undo.cxx                         |    2 --
 svtools/source/config/colorcfg.cxx               |    1 -
 svtools/source/config/extcolorcfg.cxx            |    1 -
 svtools/source/config/fontsubstconfig.cxx        |    1 -
 svtools/source/contnr/svlbitm.cxx                |    9 ++-------
 svtools/source/control/scriptedtext.cxx          |    1 -
 svtools/source/misc/embedhlp.cxx                 |    1 -
 svtools/source/misc/templatefoldercache.cxx      |    1 -
 svtools/source/misc/transfer.cxx                 |    1 -
 svtools/source/uno/unocontroltablemodel.cxx      |    1 -
 svtools/source/uno/unocontroltablemodel.hxx      |    3 ++-
 88 files changed, 107 insertions(+), 126 deletions(-)

New commits:
commit 21c5ff1287c05e24d5cc2b6100866e6992ff8381
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 15:40:14 2015 +0200

    use unique_ptr for pImpl in extensions,hwpfilter/
    
    Change-Id: I476ba7ec2ebee8c61bf9bb6ff0309cc40affb275

diff --git a/extensions/source/abpilot/datasourcehandling.cxx b/extensions/source/abpilot/datasourcehandling.cxx
index 616a72d..6ede832 100644
--- a/extensions/source/abpilot/datasourcehandling.cxx
+++ b/extensions/source/abpilot/datasourcehandling.cxx
@@ -219,7 +219,6 @@ namespace abp
     }
     ODataSourceContext::~ODataSourceContext()
     {
-        delete(m_pImpl);
     }
 
 
diff --git a/extensions/source/abpilot/datasourcehandling.hxx b/extensions/source/abpilot/datasourcehandling.hxx
index 87d3588..4b0bc51 100644
--- a/extensions/source/abpilot/datasourcehandling.hxx
+++ b/extensions/source/abpilot/datasourcehandling.hxx
@@ -22,6 +22,7 @@
 
 #include <com/sun/star/uno/Reference.hxx>
 #include <com/sun/star/uno/XComponentContext.hpp>
+#include <memory>
 
 #include "abptypes.hxx"
 
@@ -45,7 +46,7 @@ namespace abp
     class ODataSourceContext
     {
     private:
-        ODataSourceContextImpl*     m_pImpl;
+        std::unique_ptr<ODataSourceContextImpl>   m_pImpl;
 
     public:
         explicit ODataSourceContext(
diff --git a/hwpfilter/source/attributes.cxx b/hwpfilter/source/attributes.cxx
index 4c91b72..c368313 100644
--- a/hwpfilter/source/attributes.cxx
+++ b/hwpfilter/source/attributes.cxx
@@ -52,10 +52,10 @@ sal_Int16 SAL_CALL AttributeListImpl::getLength() throw (RuntimeException, std::
 }
 
 
-AttributeListImpl::AttributeListImpl( const AttributeListImpl &r ) :
-cppu::WeakImplHelper<css::xml::sax::XAttributeList>( r )
+AttributeListImpl::AttributeListImpl( const AttributeListImpl &r )
+ : cppu::WeakImplHelper<css::xml::sax::XAttributeList>( r ),
+   m_pImpl( new AttributeListImpl_impl )
 {
-    m_pImpl = new AttributeListImpl_impl;
     *m_pImpl = *(r.m_pImpl);
 }
 
@@ -125,14 +125,13 @@ OUString AttributeListImpl::getValueByName(const OUString& sName) throw (Runtime
 
 
 AttributeListImpl::AttributeListImpl()
+    : m_pImpl( new AttributeListImpl_impl )
 {
-    m_pImpl = new AttributeListImpl_impl;
 }
 
 
 AttributeListImpl::~AttributeListImpl()
 {
-    delete m_pImpl;
 }
 
 
diff --git a/hwpfilter/source/attributes.hxx b/hwpfilter/source/attributes.hxx
index c402504..a23058e 100644
--- a/hwpfilter/source/attributes.hxx
+++ b/hwpfilter/source/attributes.hxx
@@ -23,12 +23,7 @@
 
 #include <com/sun/star/xml/sax/XAttributeList.hpp>
 #include <cppuhelper/implbase.hxx>
-
-/*----------------------------------------
-*
-*   Attributlist implementation
-*
-*----------------------------------------*/
+#include <memory>
 
 using namespace ::cppu;
 using namespace ::com::sun::star::xml::sax;
@@ -57,7 +52,7 @@ public:
     void clear();
 
 private:
-    struct AttributeListImpl_impl *m_pImpl;
+    std::unique_ptr<AttributeListImpl_impl> m_pImpl;
 };
 
 #endif // INCLUDED_HWPFILTER_SOURCE_ATTRIBUTES_HXX
commit 2e9277c05034c157d640c289d59499be9d1ca382
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 15:32:23 2015 +0200

    use unique_ptr for pImpl in editeng/
    
    Change-Id: I43ae9f706db15594b3a0c5cba41436d009588393

diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx
index 52f1c95..290afd9 100644
--- a/editeng/source/editeng/editobj.cxx
+++ b/editeng/source/editeng/editobj.cxx
@@ -244,7 +244,6 @@ EditTextObject::EditTextObject( const EditTextObject& r ) :
 
 EditTextObject::~EditTextObject()
 {
-    delete mpImpl;
 }
 
 sal_Int32 EditTextObject::GetParagraphCount() const
diff --git a/editeng/source/editeng/fieldupdater.cxx b/editeng/source/editeng/fieldupdater.cxx
index 5373b09..a5db406 100644
--- a/editeng/source/editeng/fieldupdater.cxx
+++ b/editeng/source/editeng/fieldupdater.cxx
@@ -61,7 +61,6 @@ FieldUpdater::FieldUpdater(const FieldUpdater& r) : mpImpl(new FieldUpdaterImpl(
 
 FieldUpdater::~FieldUpdater()
 {
-    delete mpImpl;
 }
 
 void FieldUpdater::updateTableFields(int nTab)
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index 7de23be..5bb1766 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -3546,7 +3546,6 @@ SvxBrushItem::SvxBrushItem( const SvxBrushItem& rItem ) :
 SvxBrushItem::~SvxBrushItem()
 {
     delete pImpl->pGraphicObject;
-    delete pImpl;
 }
 
 
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index 8ca5019..7c459f4 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -2661,7 +2661,6 @@ SvxAutocorrWordList::SvxAutocorrWordList() : mpImpl(new Impl) {}
 SvxAutocorrWordList::~SvxAutocorrWordList()
 {
     mpImpl->DeleteAndDestroyAll();
-    delete mpImpl;
 }
 
 void SvxAutocorrWordList::DeleteAndDestroyAll()
diff --git a/editeng/source/uno/unofield.cxx b/editeng/source/uno/unofield.cxx
index 2f8f4e2..300530e 100644
--- a/editeng/source/uno/unofield.cxx
+++ b/editeng/source/uno/unofield.cxx
@@ -377,7 +377,6 @@ SvxUnoTextField::SvxUnoTextField( uno::Reference< text::XTextRange > xAnchor, co
 
 SvxUnoTextField::~SvxUnoTextField() throw()
 {
-    delete mpImpl;
 }
 
 SvxFieldData* SvxUnoTextField::CreateFieldData() const throw()
diff --git a/include/editeng/brushitem.hxx b/include/editeng/brushitem.hxx
index 85ca68a..d219c1f 100644
--- a/include/editeng/brushitem.hxx
+++ b/include/editeng/brushitem.hxx
@@ -23,6 +23,7 @@
 #include <vcl/wall.hxx>
 #include <tools/link.hxx>
 #include <editeng/editengdllapi.h>
+#include <memory>
 
 // class SvxBrushItem ----------------------------------------------------
 
@@ -46,7 +47,7 @@ class EDITENG_DLLPUBLIC SvxBrushItem : public SfxPoolItem
 {
     Color               aColor;
     sal_Int32           nShadingValue;
-    SvxBrushItem_Impl*  pImpl;
+    std::unique_ptr<SvxBrushItem_Impl>  pImpl;
     OUString            maStrLink;
     OUString            maStrFilter;
     SvxGraphicPosition  eGraphicPos;
diff --git a/include/editeng/editobj.hxx b/include/editeng/editobj.hxx
index 6a0eac9..495571a 100644
--- a/include/editeng/editobj.hxx
+++ b/include/editeng/editobj.hxx
@@ -32,6 +32,7 @@
 #include <com/sun/star/text/textfield/Type.hpp>
 
 #include <vector>
+#include <memory>
 
 class SfxItemPool;
 class SfxStyleSheetPool;
@@ -62,7 +63,7 @@ class EDITENG_DLLPUBLIC EditTextObject : public SfxItemPoolUser
     friend class editeng::FieldUpdaterImpl;
     friend class ImpEditEngine;
 
-    EditTextObjectImpl* mpImpl;
+    std::unique_ptr<EditTextObjectImpl> mpImpl;
 
     EditTextObject&      operator=( const EditTextObject& ) = delete;
 
diff --git a/include/editeng/fieldupdater.hxx b/include/editeng/fieldupdater.hxx
index 2fd7c4c..4f87ac3 100644
--- a/include/editeng/fieldupdater.hxx
+++ b/include/editeng/fieldupdater.hxx
@@ -11,6 +11,7 @@
 #define INCLUDED_EDITENG_FIELDUPDATER_HXX
 
 #include <editeng/editengdllapi.h>
+#include <memory>
 
 class EditTextObject;
 
@@ -24,7 +25,7 @@ class FieldUpdaterImpl;
  */
 class EDITENG_DLLPUBLIC FieldUpdater
 {
-    FieldUpdaterImpl* mpImpl;
+    std::unique_ptr<FieldUpdaterImpl> mpImpl;
 
     FieldUpdater(); // disabled
 public:
diff --git a/include/editeng/svxacorr.hxx b/include/editeng/svxacorr.hxx
index 9b0f05f..a839e22 100644
--- a/include/editeng/svxacorr.hxx
+++ b/include/editeng/svxacorr.hxx
@@ -133,7 +133,7 @@ public:
 class EDITENG_DLLPUBLIC SvxAutocorrWordList
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
     SvxAutocorrWordList( const SvxAutocorrWordList& ) = delete;
     const SvxAutocorrWordList& operator= ( const SvxAutocorrWordList& ) = delete;
diff --git a/include/editeng/unofield.hxx b/include/editeng/unofield.hxx
index be46bc5..3bfd691 100644
--- a/include/editeng/unofield.hxx
+++ b/include/editeng/unofield.hxx
@@ -32,6 +32,7 @@
 #include <comphelper/servicehelper.hxx>
 
 #include <editeng/mutxhelp.hxx>
+#include <memory>
 
 class SvxUnoFieldData_Impl;
 class SfxItemPropertySet;
@@ -51,7 +52,7 @@ private:
     css::uno::Reference< css::text::XTextRange > mxAnchor;
     const SfxItemPropertySet*   mpPropSet;
     sal_Int32                   mnServiceId;
-    SvxUnoFieldData_Impl*       mpImpl;
+    std::unique_ptr<SvxUnoFieldData_Impl>        mpImpl;
 
 protected:
     css::uno::Sequence< css::uno::Type > maTypeSequence;
commit 032dae364b4853635186b7541e40c71588f9050a
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 15:24:00 2015 +0200

    use unique_ptr for pImpl in sfx2/
    
    Change-Id: I564fa80a2642a4849127f3c25236634289b5b93d

diff --git a/include/sfx2/docfac.hxx b/include/sfx2/docfac.hxx
index 138fe6d..3d279923 100644
--- a/include/sfx2/docfac.hxx
+++ b/include/sfx2/docfac.hxx
@@ -28,6 +28,7 @@
 #include <rtl/ustring.hxx>
 
 #include <sfx2/objsh.hxx>
+#include <memory>
 
 class SfxMedium;
 class SfxFilter;
@@ -43,7 +44,7 @@ class SFX2_DLLPUBLIC SfxObjectFactory
 {
 private:
     const char*             pShortName;
-    SfxObjectFactory_Impl*  pImpl;      // Additional Data
+    std::unique_ptr<SfxObjectFactory_Impl> pImpl;      // Additional Data
     SfxObjectShellFlags     nFlags;
 
 public:
diff --git a/include/sfx2/fcontnr.hxx b/include/sfx2/fcontnr.hxx
index c774705..7b665ef 100644
--- a/include/sfx2/fcontnr.hxx
+++ b/include/sfx2/fcontnr.hxx
@@ -31,6 +31,7 @@
 #include <sfx2/docfilt.hxx>
 
 #include <tools/ref.hxx>
+#include <memory>
 
 namespace vcl { class Window; }
 class SfxFilter;
@@ -67,7 +68,7 @@ typedef sal_uIntPtr (*SfxDetectFilter)( SfxMedium& rMedium, const SfxFilter **,
 
 class SFX2_DLLPUBLIC SfxFilterContainer
 {
-    SfxFilterContainer_Impl *pImpl;
+    std::unique_ptr<SfxFilterContainer_Impl> pImpl;
 
 public:
                         SfxFilterContainer( const OUString& rName );
diff --git a/include/sfx2/linksrc.hxx b/include/sfx2/linksrc.hxx
index 4af9f0b..4c87a06 100644
--- a/include/sfx2/linksrc.hxx
+++ b/include/sfx2/linksrc.hxx
@@ -25,6 +25,7 @@
 #include <tools/link.hxx>
 #include <tools/ref.hxx>
 #include <com/sun/star/io/XInputStream.hpp>
+#include <memory>
 
 namespace com { namespace sun { namespace star { namespace uno
 {
@@ -52,7 +53,7 @@ struct SvLinkSource_Impl;
 class SFX2_DLLPUBLIC SvLinkSource : public SvRefBase
 {
 private:
-    SvLinkSource_Impl*  pImpl; // compatible area
+    std::unique_ptr<SvLinkSource_Impl>  pImpl; // compatible area
 
 public:
 
diff --git a/include/sfx2/lnkbase.hxx b/include/sfx2/lnkbase.hxx
index d2e7b16..fe5c881 100644
--- a/include/sfx2/lnkbase.hxx
+++ b/include/sfx2/lnkbase.hxx
@@ -26,6 +26,7 @@
 #include <sfx2/linksrc.hxx>
 #include <sot/exchange.hxx>
 #include <tools/ref.hxx>
+#include <memory>
 
 namespace com { namespace sun { namespace star { namespace uno
 {
@@ -71,7 +72,7 @@ private:
 
     SvLinkSourceRef         xObj;
     OUString                aLinkName;
-    BaseLink_Impl*          pImpl;
+    std::unique_ptr<BaseLink_Impl>  pImpl;
     sal_uInt16              nObjType;
     bool                    bVisible : 1;
     bool                    bSynchron : 1;
diff --git a/sfx2/source/appl/linksrc.cxx b/sfx2/source/appl/linksrc.cxx
index e546653..eaea196 100644
--- a/sfx2/source/appl/linksrc.cxx
+++ b/sfx2/source/appl/linksrc.cxx
@@ -210,7 +210,6 @@ SvLinkSource::SvLinkSource()
 
 SvLinkSource::~SvLinkSource()
 {
-    delete pImpl;
 }
 
 
diff --git a/sfx2/source/appl/lnkbase2.cxx b/sfx2/source/appl/lnkbase2.cxx
index c6e3781..f3b4cc8 100644
--- a/sfx2/source/appl/lnkbase2.cxx
+++ b/sfx2/source/appl/lnkbase2.cxx
@@ -123,9 +123,9 @@ public:
 
 
 SvBaseLink::SvBaseLink()
-    : m_bIsReadOnly(false)
+    : pImpl ( new BaseLink_Impl ),
+      m_bIsReadOnly(false)
 {
-    pImpl = new BaseLink_Impl();
     nObjType = OBJECT_CLIENT_SO;
     pImplData = new ImplBaseLinkData;
     bVisible = bSynchron = bUseCache = true;
@@ -135,9 +135,9 @@ SvBaseLink::SvBaseLink()
 
 
 SvBaseLink::SvBaseLink( SfxLinkUpdateMode nUpdateMode, SotClipboardFormatId nContentType )
-    : m_bIsReadOnly(false)
+   : pImpl( new BaseLink_Impl ),
+     m_bIsReadOnly(false)
 {
-    pImpl = new BaseLink_Impl();
     nObjType = OBJECT_CLIENT_SO;
     pImplData = new ImplBaseLinkData;
     bVisible = bSynchron = bUseCache = true;
@@ -243,7 +243,6 @@ SvBaseLink::~SvBaseLink()
     }
 
     delete pImplData;
-    delete pImpl;
 }
 
 IMPL_LINK_TYPED( SvBaseLink, EndEditHdl, const OUString&, _rNewName, void )
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index 3f7df44..6edc51d 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -182,15 +182,14 @@ const SfxFilter* SfxFilterContainer::GetAnyFilter( SfxFilterFlags nMust, SfxFilt
 
 
 SfxFilterContainer::SfxFilterContainer( const OUString& rName )
+   : pImpl( new SfxFilterContainer_Impl( rName ) )
 {
-    pImpl = new SfxFilterContainer_Impl( rName );
 }
 
 
 
 SfxFilterContainer::~SfxFilterContainer()
 {
-    delete pImpl;
 }
 
 
diff --git a/sfx2/source/doc/docfac.cxx b/sfx2/source/doc/docfac.cxx
index e6225a9..f9426b8 100644
--- a/sfx2/source/doc/docfac.cxx
+++ b/sfx2/source/doc/docfac.cxx
@@ -122,10 +122,8 @@ SfxObjectFactory::SfxObjectFactory
 
 SfxObjectFactory::~SfxObjectFactory()
 {
-
     delete pImpl->pNameResId;
     delete pImpl->pFilterContainer;
-    delete pImpl;
 }
 
 
commit 9c205723fcc0a2087ff7bf1e86f4f07b62564d5d
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 15:18:00 2015 +0200

    use unique_ptr for pImpl in sax/
    
    Change-Id: I0bef03451437cbdc5b0fed6b67690ac1d547291d

diff --git a/include/sax/fastparser.hxx b/include/sax/fastparser.hxx
index 9d156b1..d730917 100644
--- a/include/sax/fastparser.hxx
+++ b/include/sax/fastparser.hxx
@@ -25,6 +25,7 @@
 #include <cppuhelper/implbase2.hxx>
 
 #include <sax/fastsaxdllapi.h>
+#include <memory>
 
 namespace com { namespace sun { namespace star { namespace xml { namespace sax {
 
@@ -46,7 +47,7 @@ class FASTSAX_DLLPUBLIC FastSaxParser
                 css::xml::sax::XFastParser,
                 css::lang::XServiceInfo >
 {
-    FastSaxParserImpl* mpImpl;
+    std::unique_ptr<FastSaxParserImpl> mpImpl;
 
 public:
     FastSaxParser();
diff --git a/sax/source/expatwrap/attrlistimpl.cxx b/sax/source/expatwrap/attrlistimpl.cxx
index 525659d..61bfe2b 100644
--- a/sax/source/expatwrap/attrlistimpl.cxx
+++ b/sax/source/expatwrap/attrlistimpl.cxx
@@ -64,9 +64,9 @@ sal_Int16 AttributeList::getLength() throw (RuntimeException, std::exception)
 
 
 AttributeList::AttributeList( const AttributeList &r ) :
-    cppu::WeakImplHelper<XAttributeList, XCloneable>()
+    cppu::WeakImplHelper<XAttributeList, XCloneable>(),
+    m_pImpl( new AttributeList_impl )
 {
-    m_pImpl = new AttributeList_impl;
     *m_pImpl = *(r.m_pImpl);
 }
 
@@ -134,15 +134,14 @@ Reference< XCloneable > AttributeList::createClone() throw (RuntimeException, st
 
 
 AttributeList::AttributeList()
+   : m_pImpl( new AttributeList_impl )
 {
-    m_pImpl = new AttributeList_impl;
 }
 
 
 
 AttributeList::~AttributeList()
 {
-    delete m_pImpl;
 }
 
 
diff --git a/sax/source/expatwrap/attrlistimpl.hxx b/sax/source/expatwrap/attrlistimpl.hxx
index f5d283f..7910767 100644
--- a/sax/source/expatwrap/attrlistimpl.hxx
+++ b/sax/source/expatwrap/attrlistimpl.hxx
@@ -25,6 +25,7 @@
 #include <com/sun/star/uno/RuntimeException.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
 #include <com/sun/star/xml/sax/XAttributeList.hpp>
+#include <memory>
 
 namespace sax_expatwrap
 {
@@ -65,7 +66,7 @@ public:
         createClone()   throw(css::uno::RuntimeException, std::exception) override;
 
 private:
-    struct AttributeList_impl *m_pImpl;
+    std::unique_ptr<AttributeList_impl> m_pImpl;
 };
 
 }
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index 1978a54..35596ac 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -1288,7 +1288,6 @@ FastSaxParser::FastSaxParser() : mpImpl(new FastSaxParserImpl(this)) {}
 
 FastSaxParser::~FastSaxParser()
 {
-    delete mpImpl;
 }
 
 void FastSaxParser::parseStream( const xml::sax::InputSource& aInputSource )
commit b442d5dd3c230a8a1dabaa7cc0333911ba456859
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 15:15:05 2015 +0200

    use unique_ptr for pImpl in sc/
    
    Change-Id: I2516c83f8dfca1f1217be7dcb2a28f5dcd2f704e

diff --git a/sc/inc/arealink.hxx b/sc/inc/arealink.hxx
index c014e34..4f15f79 100644
--- a/sc/inc/arealink.hxx
+++ b/sc/inc/arealink.hxx
@@ -25,6 +25,7 @@
 #include "address.hxx"
 #include <sfx2/lnkbase.hxx>
 #include "scdllapi.h"
+#include <memory>
 
 class SfxObjectShell;
 struct AreaLink_Impl;
@@ -33,7 +34,7 @@ class Dialog;
 class SC_DLLPUBLIC ScAreaLink : public ::sfx2::SvBaseLink, public ScRefreshTimer
 {
 private:
-    AreaLink_Impl*  pImpl;
+    std::unique_ptr<AreaLink_Impl> pImpl;
     OUString        aFileName;
     OUString        aFilterName;
     OUString        aOptions;
diff --git a/sc/inc/bulkdatahint.hxx b/sc/inc/bulkdatahint.hxx
index 450a19f..4b37584 100644
--- a/sc/inc/bulkdatahint.hxx
+++ b/sc/inc/bulkdatahint.hxx
@@ -11,6 +11,7 @@
 #define INCLUDED_SC_BULKDATAHINT_HXX
 
 #include <simplehintids.hxx>
+#include <memory>
 
 class ScDocument;
 
@@ -21,7 +22,7 @@ class ColumnSpanSet;
 class BulkDataHint : public SfxSimpleHint
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
     BulkDataHint( const BulkDataHint& ) = delete;
     BulkDataHint& operator= ( const BulkDataHint& ) = delete;
diff --git a/sc/inc/cellvalues.hxx b/sc/inc/cellvalues.hxx
index 6aaf326..7c132b0 100644
--- a/sc/inc/cellvalues.hxx
+++ b/sc/inc/cellvalues.hxx
@@ -12,6 +12,7 @@
 
 #include "address.hxx"
 #include <global.hxx>
+#include <memory>
 
 class ScColumn;
 
@@ -40,7 +41,7 @@ struct CellValueSpan
  */
 class CellValues
 {
-    CellValuesImpl* mpImpl;
+    std::unique_ptr<CellValuesImpl> mpImpl;
 
     CellValues( const CellValues& ) = delete;
     CellValues& operator= ( const CellValues& ) = delete;
@@ -86,7 +87,7 @@ class TableValues
 {
     struct Impl;
 
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
     TableValues( const TableValues& ) = delete;
     TableValues& operator= ( const TableValues& ) = delete;
diff --git a/sc/inc/documentimport.hxx b/sc/inc/documentimport.hxx
index 5567260c..66ffaac 100644
--- a/sc/inc/documentimport.hxx
+++ b/sc/inc/documentimport.hxx
@@ -16,6 +16,7 @@
 #include <rtl/ustring.hxx>
 
 #include <boost/noncopyable.hpp>
+#include <memory>
 
 class EditTextObject;
 class ScDocument;
@@ -39,7 +40,7 @@ enum class SvtScriptType;
  */
 class SC_DLLPUBLIC ScDocumentImport : boost::noncopyable
 {
-    ScDocumentImportImpl* mpImpl;
+    std::unique_ptr<ScDocumentImportImpl> mpImpl;
 
     ScDocumentImport(); // disabled
     ScDocumentImport& operator=(const ScDocumentImport&); //disabled
diff --git a/sc/inc/documentlinkmgr.hxx b/sc/inc/documentlinkmgr.hxx
index 0af5cf8..f5ba279 100644
--- a/sc/inc/documentlinkmgr.hxx
+++ b/sc/inc/documentlinkmgr.hxx
@@ -12,6 +12,7 @@
 
 #include <boost/noncopyable.hpp>
 #include <rtl/ustring.hxx>
+#include <memory>
 
 class ScDocument;
 class SfxObjectShell;
@@ -30,7 +31,7 @@ struct DocumentLinkManagerImpl;
 
 class DocumentLinkManager : boost::noncopyable
 {
-    DocumentLinkManagerImpl* mpImpl;
+    std::unique_ptr<DocumentLinkManagerImpl> mpImpl;
 
 public:
     DocumentLinkManager( ScDocument& rDoc, SfxObjectShell* pShell );
diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx
index 5f1c43a..5a6f87b1 100644
--- a/sc/inc/formulacell.hxx
+++ b/sc/inc/formulacell.hxx
@@ -21,6 +21,7 @@
 #define INCLUDED_SC_INC_FORMULACELL_HXX
 
 #include <set>
+#include <memory>
 
 #include <boost/noncopyable.hpp>
 
@@ -56,7 +57,7 @@ struct SC_DLLPUBLIC ScFormulaCellGroup : boost::noncopyable
 {
 private:
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 public:
 
diff --git a/sc/inc/listenerquery.hxx b/sc/inc/listenerquery.hxx
index afe6b8a..f69283c 100644
--- a/sc/inc/listenerquery.hxx
+++ b/sc/inc/listenerquery.hxx
@@ -15,6 +15,7 @@
 
 #include <unordered_map>
 #include <vector>
+#include <memory>
 
 class ScRangeList;
 
@@ -51,7 +52,7 @@ private:
 class QueryRange : public SvtListener::QueryBase
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
     QueryRange( const QueryRange& ) = delete;
     QueryRange& operator= ( const QueryRange& ) = delete;
diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx
index c651381..883550d 100644
--- a/sc/inc/scmatrix.hxx
+++ b/sc/inc/scmatrix.hxx
@@ -115,7 +115,7 @@ class SC_DLLPUBLIC ScMatrix
 {
     friend class ScMatrixImpl;
 
-    ScMatrixImpl*   pImpl;
+    std::unique_ptr<ScMatrixImpl> pImpl;
     mutable size_t  nRefCnt;    // reference count
 
     // only delete via Delete()
diff --git a/sc/inc/tablink.hxx b/sc/inc/tablink.hxx
index 147f3d2..de2490e 100644
--- a/sc/inc/tablink.hxx
+++ b/sc/inc/tablink.hxx
@@ -25,6 +25,7 @@
 #include <sfx2/lnkbase.hxx>
 
 #include <sfx2/objsh.hxx>
+#include <memory>
 
 class ScDocShell;
 struct TableLink_Impl;
@@ -32,7 +33,7 @@ struct TableLink_Impl;
 class ScTableLink : public ::sfx2::SvBaseLink, public ScRefreshTimer
 {
 private:
-    TableLink_Impl* pImpl;
+    std::unique_ptr<TableLink_Impl> pImpl;
     OUString aFileName;
     OUString aFilterName;
     OUString aOptions;
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 4700c6c..66890c9 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -148,7 +148,6 @@ Test::Test() :
 
 Test::~Test()
 {
-    delete m_pImpl;
 }
 
 ScDocShell& Test::getDocShell()
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index b1a6af2..9ea7f4b 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -13,6 +13,7 @@
 #include "helper/qahelper.hxx"
 #include "document.hxx"
 #include <stringutil.hxx>
+#include <memory>
 
 struct TestImpl;
 class ScUndoPaste;
@@ -688,7 +689,7 @@ public:
     CPPUNIT_TEST_SUITE_END();
 
 private:
-    TestImpl* m_pImpl;
+    std::unique_ptr<TestImpl> m_pImpl;
     ScDocument *m_pDoc;
 };
 
diff --git a/sc/source/core/data/cellvalues.cxx b/sc/source/core/data/cellvalues.cxx
index 5056be8..bdee2b9 100644
--- a/sc/source/core/data/cellvalues.cxx
+++ b/sc/source/core/data/cellvalues.cxx
@@ -61,7 +61,6 @@ CellValues::CellValues() :
 
 CellValues::~CellValues()
 {
-    delete mpImpl;
 }
 
 void CellValues::transferFrom( ScColumn& rCol, SCROW nRow, size_t nLen )
@@ -316,7 +315,6 @@ TableValues::TableValues( const ScRange& rRange ) :
 
 TableValues::~TableValues()
 {
-    delete mpImpl;
 }
 
 const ScRange& TableValues::getRange() const
diff --git a/sc/source/core/data/documentimport.cxx b/sc/source/core/data/documentimport.cxx
index 2af6fdb..14dfef5 100644
--- a/sc/source/core/data/documentimport.cxx
+++ b/sc/source/core/data/documentimport.cxx
@@ -77,9 +77,9 @@ struct ScDocumentImportImpl
 ScDocumentImport::Attrs::Attrs() : mpData(nullptr), mnSize(0), mbLatinNumFmtOnly(false) {}
 
 ScDocumentImport::ScDocumentImport(ScDocument& rDoc) : mpImpl(new ScDocumentImportImpl(rDoc)) {}
+
 ScDocumentImport::~ScDocumentImport()
 {
-    delete mpImpl;
 }
 
 ScDocument& ScDocumentImport::getDoc()
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index b6b6ad9..abdab5d 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -559,7 +559,6 @@ ScFormulaCellGroup::~ScFormulaCellGroup()
     SAL_INFO( "sc.core.formulacell", "ScFormulaCellGroup dtor this " << this);
     delete mpCode;
     delete mpCompiledFormula;
-    delete mpImpl;
 }
 
 void ScFormulaCellGroup::setCode( const ScTokenArray& rCode )
diff --git a/sc/source/core/tool/bulkdatahint.cxx b/sc/source/core/tool/bulkdatahint.cxx
index 78c2384..72ac7c0 100644
--- a/sc/source/core/tool/bulkdatahint.cxx
+++ b/sc/source/core/tool/bulkdatahint.cxx
@@ -26,7 +26,6 @@ BulkDataHint::BulkDataHint( ScDocument& rDoc, const ColumnSpanSet* pSpans ) :
 
 BulkDataHint::~BulkDataHint()
 {
-    delete mpImpl;
 }
 
 void BulkDataHint::setSpans( const ColumnSpanSet* pSpans )
diff --git a/sc/source/core/tool/listenerquery.cxx b/sc/source/core/tool/listenerquery.cxx
index faa3bbb..e31b759 100644
--- a/sc/source/core/tool/listenerquery.cxx
+++ b/sc/source/core/tool/listenerquery.cxx
@@ -79,7 +79,6 @@ QueryRange::QueryRange() :
 
 QueryRange::~QueryRange()
 {
-    delete mpImpl;
 }
 
 void QueryRange::add( const ScRange& rRange )
diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx
index e6bb3b8..2af2df3 100644
--- a/sc/source/core/tool/scmatrix.cxx
+++ b/sc/source/core/tool/scmatrix.cxx
@@ -2254,7 +2254,6 @@ ScMatrix::ScMatrix( size_t nC, size_t nR, const std::vector<double>& rInitVals )
 
 ScMatrix::~ScMatrix()
 {
-    delete pImpl;
 }
 
 ScMatrix* ScMatrix::Clone() const
diff --git a/sc/source/filter/inc/revisionfragment.hxx b/sc/source/filter/inc/revisionfragment.hxx
index ee4e275..9e13ba8 100644
--- a/sc/source/filter/inc/revisionfragment.hxx
+++ b/sc/source/filter/inc/revisionfragment.hxx
@@ -11,6 +11,7 @@
 #define INCLUDED_SC_OOX_XLS_REVISIONFRAGMENT_HXX
 
 #include <excelhandlers.hxx>
+#include <memory>
 
 class ScChangeTrack;
 
@@ -19,7 +20,7 @@ namespace oox { namespace xls {
 class RevisionHeadersFragment : public WorkbookFragmentBase
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 public:
     explicit RevisionHeadersFragment(
@@ -44,7 +45,7 @@ private:
 class RevisionLogFragment : public WorkbookFragmentBase
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 public:
     explicit RevisionLogFragment(
diff --git a/sc/source/filter/oox/revisionfragment.cxx b/sc/source/filter/oox/revisionfragment.cxx
index 7b7861d..9631049 100644
--- a/sc/source/filter/oox/revisionfragment.cxx
+++ b/sc/source/filter/oox/revisionfragment.cxx
@@ -201,7 +201,6 @@ RevisionHeadersFragment::RevisionHeadersFragment(
 
 RevisionHeadersFragment::~RevisionHeadersFragment()
 {
-    delete mpImpl;
 }
 
 oox::core::ContextHandlerRef RevisionHeadersFragment::onCreateContext(
@@ -340,7 +339,6 @@ RevisionLogFragment::RevisionLogFragment(
 
 RevisionLogFragment::~RevisionLogFragment()
 {
-    delete mpImpl;
 }
 
 oox::core::ContextHandlerRef RevisionLogFragment::onCreateContext(
diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx
index 533deb7..2dfba95 100644
--- a/sc/source/ui/docshell/arealink.cxx
+++ b/sc/source/ui/docshell/arealink.cxx
@@ -80,7 +80,6 @@ ScAreaLink::ScAreaLink( SfxObjectShell* pShell, const OUString& rFile,
 ScAreaLink::~ScAreaLink()
 {
     StopRefreshTimer();
-    delete pImpl;
 }
 
 void ScAreaLink::Edit(vcl::Window* pParent, const Link<SvBaseLink&,void>& /* rEndEditHdl */ )
diff --git a/sc/source/ui/docshell/documentlinkmgr.cxx b/sc/source/ui/docshell/documentlinkmgr.cxx
index 6a39a34..87bcae2 100644
--- a/sc/source/ui/docshell/documentlinkmgr.cxx
+++ b/sc/source/ui/docshell/documentlinkmgr.cxx
@@ -61,7 +61,6 @@ DocumentLinkManager::DocumentLinkManager( ScDocument& rDoc, SfxObjectShell* pShe
 
 DocumentLinkManager::~DocumentLinkManager()
 {
-    delete mpImpl;
 }
 
 void DocumentLinkManager::setDataStream( DataStream* p )
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index d5e2114..2b2572c 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -101,7 +101,6 @@ ScTableLink::~ScTableLink()
     for (SCTAB nTab=0; nTab<nCount; nTab++)
         if (rDoc.IsLinked(nTab) && aFileName.equals(rDoc.GetLinkDoc(nTab)))
             rDoc.SetLink( nTab, ScLinkMode::NONE, "", "", "", "", 0 );
-    delete pImpl;
 }
 
 void ScTableLink::Edit( vcl::Window* pParent, const Link<SvBaseLink&,void>& rEndEditHdl )
diff --git a/sc/source/ui/inc/cellsh.hxx b/sc/source/ui/inc/cellsh.hxx
index ff2db0c..d81f822 100644
--- a/sc/source/ui/inc/cellsh.hxx
+++ b/sc/source/ui/inc/cellsh.hxx
@@ -26,6 +26,7 @@
 #include <svx/svdmark.hxx>
 #include <unotools/caserotate.hxx>
 #include <tools/link.hxx>
+#include <memory>
 #include "formatsh.hxx"
 #include "address.hxx"
 
@@ -49,7 +50,7 @@ struct CellShell_Impl
 class ScCellShell: public ScFormatShell
 {
 private:
-    CellShell_Impl* pImpl;
+    std::unique_ptr<CellShell_Impl> pImpl;
     bool            bPastePossible;
 
     void        GetPossibleClipboardFormats( SvxClipboardFormatItem& rFormats );
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 9d35c97..877f388 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -98,7 +98,6 @@ ScCellShell::~ScCellShell()
 
     delete pImpl->m_pLinkedDlg;
     delete pImpl->m_pRequest;
-    delete pImpl;
 }
 
 void ScCellShell::GetBlockState( SfxItemSet& rSet )
commit 6d47aa90fcdc72f79d904e3af36ea6de0134d764
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 14:52:09 2015 +0200

    use unique_ptr for pImpl in sd/
    
    Change-Id: I7098c1dd51fe27e424d612b2503fa842ced77639

diff --git a/sd/source/filter/html/buttonset.cxx b/sd/source/filter/html/buttonset.cxx
index bee5e41..2d07d78 100644
--- a/sd/source/filter/html/buttonset.cxx
+++ b/sd/source/filter/html/buttonset.cxx
@@ -267,7 +267,6 @@ ButtonSet::ButtonSet()
 
 ButtonSet::~ButtonSet()
 {
-    delete mpImpl;
 }
 
 int ButtonSet::getCount() const
diff --git a/sd/source/filter/html/buttonset.hxx b/sd/source/filter/html/buttonset.hxx
index 8dc230b..3342c17 100644
--- a/sd/source/filter/html/buttonset.hxx
+++ b/sd/source/filter/html/buttonset.hxx
@@ -24,6 +24,7 @@
 
 #include <rtl/ustring.hxx>
 #include <vector>
+#include <memory>
 
 class Image;
 class ButtonSetImpl;
@@ -40,7 +41,7 @@ public:
     bool exportButton( int nSet, const OUString& rPath, const OUString& rName );
 
 private:
-    ButtonSetImpl* mpImpl;
+    std::unique_ptr<ButtonSetImpl> mpImpl;
 };
 
 #endif // INCLUDED_SD_SOURCE_FILTER_HTML_BUTTONSET_HXX
commit 0d62716f67b6269448eeae1f012f9512b503f390
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 14:46:26 2015 +0200

    use unique_ptr for pImpl in svl/
    
    Change-Id: Ieef897314ac0f056c0a09a5182ca59800fd58f41

diff --git a/include/svl/SfxBroadcaster.hxx b/include/svl/SfxBroadcaster.hxx
index 97afa70..e5fb5e1 100644
--- a/include/svl/SfxBroadcaster.hxx
+++ b/include/svl/SfxBroadcaster.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SVL_BRDCST_HXX
 
 #include <svl/svldllapi.h>
+#include <memory>
 
 class SfxListener;
 class SfxHint;
@@ -28,7 +29,7 @@ class SfxBroadcasterTest;
 class SVL_DLLPUBLIC SfxBroadcaster
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 private:
     void                    AddListener( SfxListener& rListener );
diff --git a/include/svl/gridprinter.hxx b/include/svl/gridprinter.hxx
index 446072b..6f3f61b 100644
--- a/include/svl/gridprinter.hxx
+++ b/include/svl/gridprinter.hxx
@@ -12,6 +12,7 @@
 
 #include <rtl/ustring.hxx>
 #include <svl/svldllapi.h>
+#include <memory>
 
 namespace svl {
 
@@ -22,7 +23,7 @@ namespace svl {
 class SVL_DLLPUBLIC GridPrinter
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 public:
     GridPrinter( size_t nRows, size_t nCols, bool bPrint = true );
diff --git a/include/svl/inethist.hxx b/include/svl/inethist.hxx
index 90a12bb..2a03d3b 100644
--- a/include/svl/inethist.hxx
+++ b/include/svl/inethist.hxx
@@ -23,6 +23,7 @@
 #include <svl/hint.hxx>
 #include <svl/svldllapi.h>
 #include <tools/urlobj.hxx>
+#include <memory>
 
 class INetURLHistory_Impl;
 class SVL_DLLPUBLIC INetURLHistory : public SfxBroadcaster
@@ -35,7 +36,7 @@ class SVL_DLLPUBLIC INetURLHistory : public SfxBroadcaster
 
     /** Representation.
     */
-    INetURLHistory_Impl *m_pImpl;
+    std::unique_ptr<INetURLHistory_Impl> m_pImpl;
 
     /** Construction/Destruction.
     */
diff --git a/include/svl/itemprop.hxx b/include/svl/itemprop.hxx
index 56a82d9..1c8923f 100644
--- a/include/svl/itemprop.hxx
+++ b/include/svl/itemprop.hxx
@@ -26,6 +26,7 @@
 #include <svl/itemset.hxx>
 #include <svl/svldllapi.h>
 #include <vector>
+#include <memory>
 
 /// map a property between beans::XPropertySet and SfxPoolItem
 struct SfxItemPropertyMapEntry
@@ -87,7 +88,7 @@ typedef std::vector< SfxItemPropertyNamedEntry > PropertyEntryVector_t;
 class SfxItemPropertyMap_Impl;
 class SVL_DLLPUBLIC SfxItemPropertyMap
 {
-    SfxItemPropertyMap_Impl* m_pImpl;
+    std::unique_ptr<SfxItemPropertyMap_Impl> m_pImpl;
 public:
     SfxItemPropertyMap( const SfxItemPropertyMapEntry* pEntries );
     SfxItemPropertyMap( const SfxItemPropertyMap& rSource );
@@ -156,7 +157,7 @@ public:
 struct SfxItemPropertySetInfo_Impl;
 class SVL_DLLPUBLIC SfxItemPropertySetInfo : public cppu::WeakImplHelper1<css::beans::XPropertySetInfo>
 {
-    SfxItemPropertySetInfo_Impl* m_pImpl;
+    std::unique_ptr<SfxItemPropertySetInfo_Impl> m_pImpl;
 
 public:
     SfxItemPropertySetInfo(const SfxItemPropertyMap &rMap );
diff --git a/include/svl/lstner.hxx b/include/svl/lstner.hxx
index bfa2330..985ff52 100644
--- a/include/svl/lstner.hxx
+++ b/include/svl/lstner.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SVL_LSTNER_HXX
 
 #include <svl/svldllapi.h>
+#include <memory>
 
 class SfxBroadcaster;
 class SfxHint;
@@ -27,7 +28,7 @@ class SfxHint;
 class SVL_DLLPUBLIC SfxListener
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 private:
     const SfxListener&  operator=(const SfxListener &) = delete;
diff --git a/include/svl/numuno.hxx b/include/svl/numuno.hxx
index 4dab2ef..8271293 100644
--- a/include/svl/numuno.hxx
+++ b/include/svl/numuno.hxx
@@ -24,6 +24,7 @@
 #include <com/sun/star/lang/XUnoTunnel.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <cppuhelper/implbase2.hxx>
+#include <memory>
 
 class SvNumberFormatter;
 class SvNumFmtSuppl_Impl;
@@ -51,7 +52,7 @@ class SVL_DLLPUBLIC SvNumberFormatsSupplierObj : public cppu::WeakAggImplHelper2
                                     css::lang::XUnoTunnel>
 {
 private:
-    SvNumFmtSuppl_Impl* pImpl;
+    std::unique_ptr<SvNumFmtSuppl_Impl> pImpl;
 
 public:
                                 SvNumberFormatsSupplierObj();
diff --git a/include/svl/sharedstringpool.hxx b/include/svl/sharedstringpool.hxx
index ae958ed..88adc1b 100644
--- a/include/svl/sharedstringpool.hxx
+++ b/include/svl/sharedstringpool.hxx
@@ -12,6 +12,7 @@
 
 #include <svl/svldllapi.h>
 #include <rtl/ustring.hxx>
+#include <memory>
 
 class CharClass;
 
@@ -27,7 +28,7 @@ class SharedString;
 class SVL_DLLPUBLIC SharedStringPool
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
     SharedStringPool( const SharedStringPool& ) = delete;
     SharedStringPool& operator=( const SharedStringPool& ) = delete;
diff --git a/include/svl/stylepool.hxx b/include/svl/stylepool.hxx
index f12528a..93caa6a 100644
--- a/include/svl/stylepool.hxx
+++ b/include/svl/stylepool.hxx
@@ -29,7 +29,7 @@ class IStylePoolIteratorAccess;
 class SVL_DLLPUBLIC StylePool
 {
 private:
-    StylePoolImpl *pImpl;
+    std::unique_ptr<StylePoolImpl> pImpl;
 public:
     typedef std::shared_ptr<SfxItemSet> SfxItemSet_Pointer_t;
 
diff --git a/include/svl/undo.hxx b/include/svl/undo.hxx
index d5bb705..3aac88f 100644
--- a/include/svl/undo.hxx
+++ b/include/svl/undo.hxx
@@ -83,7 +83,7 @@ typedef sal_Int32 UndoStackMark;
 class SVL_DLLPUBLIC SfxUndoActions
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 public:
     SfxUndoActions();
@@ -133,7 +133,7 @@ class SVL_DLLPUBLIC SfxListUndoAction : public SfxUndoAction, public SfxUndoArra
 */
 {
     struct Impl;
-    Impl* mpImpl;
+    std::unique_ptr<Impl> mpImpl;
 
 public:
 
diff --git a/svl/source/items/itemprop.cxx b/svl/source/items/itemprop.cxx
index a815405..753602c 100644
--- a/svl/source/items/itemprop.cxx
+++ b/svl/source/items/itemprop.cxx
@@ -71,13 +71,12 @@ SfxItemPropertyMap::SfxItemPropertyMap( const SfxItemPropertyMapEntry* pEntries
 }
 
 SfxItemPropertyMap::SfxItemPropertyMap( const SfxItemPropertyMap& rSource ) :
-    m_pImpl( new SfxItemPropertyMap_Impl( rSource.m_pImpl ) )
+    m_pImpl( new SfxItemPropertyMap_Impl( rSource.m_pImpl.get() ) )
 {
 }
 
 SfxItemPropertyMap::~SfxItemPropertyMap()
 {
-    delete m_pImpl;
 }
 
 const SfxItemPropertySimpleEntry* SfxItemPropertyMap::getByName( const OUString &rName ) const
@@ -344,7 +343,6 @@ Sequence< Property > SAL_CALL SfxItemPropertySetInfo::getProperties(  )
 SfxItemPropertySetInfo::~SfxItemPropertySetInfo()
 {
     delete m_pImpl->m_pOwnMap;
-    delete m_pImpl;
 }
 
 Property SAL_CALL SfxItemPropertySetInfo::getPropertyByName( const OUString& rName )
diff --git a/svl/source/items/stylepool.cxx b/svl/source/items/stylepool.cxx
index 5e3afe6..c0947c4 100644
--- a/svl/source/items/stylepool.cxx
+++ b/svl/source/items/stylepool.cxx
@@ -467,6 +467,7 @@ IStylePoolIteratorAccess* StylePool::createIterator( const bool bSkipUnusedItemS
     return pImpl->createIterator( bSkipUnusedItemSets, bSkipIgnorableItems );
 }
 
-StylePool::~StylePool() { delete pImpl; }
+StylePool::~StylePool()
+{}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svl/source/misc/gridprinter.cxx b/svl/source/misc/gridprinter.cxx
index f15c8e7..4044b3e 100644
--- a/svl/source/misc/gridprinter.cxx
+++ b/svl/source/misc/gridprinter.cxx
@@ -64,7 +64,6 @@ GridPrinter::GridPrinter( size_t nRows, size_t nCols, bool bPrint ) :
 
 GridPrinter::~GridPrinter()
 {
-    delete mpImpl;
 }
 
 void GridPrinter::set( size_t nRow, size_t nCol, const OUString& rStr )
diff --git a/svl/source/misc/inethist.cxx b/svl/source/misc/inethist.cxx
index 68428eb..ce76e2b 100644
--- a/svl/source/misc/inethist.cxx
+++ b/svl/source/misc/inethist.cxx
@@ -312,7 +312,6 @@ INetURLHistory::INetURLHistory() : m_pImpl (new INetURLHistory_Impl())
 
 INetURLHistory::~INetURLHistory()
 {
-    DELETEZ (m_pImpl);
 }
 
 /*
diff --git a/svl/source/misc/sharedstringpool.cxx b/svl/source/misc/sharedstringpool.cxx
index 435209a..70d7695 100644
--- a/svl/source/misc/sharedstringpool.cxx
+++ b/svl/source/misc/sharedstringpool.cxx
@@ -65,7 +65,6 @@ SharedStringPool::SharedStringPool( const CharClass* pCharClass ) :
 
 SharedStringPool::~SharedStringPool()
 {
-    delete mpImpl;
 }
 
 SharedString SharedStringPool::intern( const OUString& rStr )
diff --git a/svl/source/notify/SfxBroadcaster.cxx b/svl/source/notify/SfxBroadcaster.cxx
index 0a7ef4b..eaeed4d 100644
--- a/svl/source/notify/SfxBroadcaster.cxx
+++ b/svl/source/notify/SfxBroadcaster.cxx
@@ -64,8 +64,6 @@ SfxBroadcaster::~SfxBroadcaster()
         if (pListener)
             pListener->RemoveBroadcaster_Impl(*this);
     }
-
-    delete mpImpl;
 }
 
 
diff --git a/svl/source/notify/lstner.cxx b/svl/source/notify/lstner.cxx
index e24becc..8c3bdfb 100644
--- a/svl/source/notify/lstner.cxx
+++ b/svl/source/notify/lstner.cxx
@@ -58,8 +58,6 @@ SfxListener::~SfxListener()
         SfxBroadcaster *pBC = mpImpl->maBCs[nPos];
         pBC->RemoveListener(*this);
     }
-
-    delete mpImpl;
 }
 
 
diff --git a/svl/source/numbers/numuno.cxx b/svl/source/numbers/numuno.cxx
index 5f7bd78..21d2115 100644
--- a/svl/source/numbers/numuno.cxx
+++ b/svl/source/numbers/numuno.cxx
@@ -40,18 +40,17 @@ public:
 
 // Default ctor for getReflection
 SvNumberFormatsSupplierObj::SvNumberFormatsSupplierObj()
+    : pImpl( new SvNumFmtSuppl_Impl(nullptr) )
 {
-    pImpl = new SvNumFmtSuppl_Impl(nullptr);
 }
 
 SvNumberFormatsSupplierObj::SvNumberFormatsSupplierObj(SvNumberFormatter* pForm)
+    : pImpl( new SvNumFmtSuppl_Impl(pForm) )
 {
-    pImpl = new SvNumFmtSuppl_Impl(pForm);
 }
 
 SvNumberFormatsSupplierObj::~SvNumberFormatsSupplierObj()
 {
-    delete pImpl;
 }
 
 ::comphelper::SharedMutex& SvNumberFormatsSupplierObj::getSharedMutex() const
diff --git a/svl/source/undo/undo.cxx b/svl/source/undo/undo.cxx
index c65ea1b..7c3965d 100644
--- a/svl/source/undo/undo.cxx
+++ b/svl/source/undo/undo.cxx
@@ -169,7 +169,6 @@ SfxUndoActions::SfxUndoActions( const SfxUndoActions& r ) :
 
 SfxUndoActions::~SfxUndoActions()
 {
-    delete mpImpl;
 }
 
 bool SfxUndoActions::empty() const
@@ -1335,7 +1334,6 @@ SfxListUndoAction::SfxListUndoAction(
 
 SfxListUndoAction::~SfxListUndoAction()
 {
-    delete mpImpl;
 }
 
 void SfxListUndoAction::Undo()
commit f43db673558a1139fba783973c87de9b79033425
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Nov 17 14:36:31 2015 +0200

    use unique_ptr for pImpl in svtools/
    
    Change-Id: Ic82db5859464978ca58094e2b6f44e3c9ba30b4c

diff --git a/include/svtools/colorcfg.hxx b/include/svtools/colorcfg.hxx
index d373d6a..99ca126 100644
--- a/include/svtools/colorcfg.hxx
+++ b/include/svtools/colorcfg.hxx
@@ -24,6 +24,7 @@
 #include <tools/color.hxx>
 #include <com/sun/star/uno/Sequence.h>
 #include <unotools/options.hxx>
+#include <memory>
 
 
 namespace svtools{
@@ -108,7 +109,7 @@ public:
 
 class SVT_DLLPUBLIC EditableColorConfig
 {
-    ColorConfig_Impl*   m_pImpl;
+    std::unique_ptr<ColorConfig_Impl> m_pImpl;
     bool                m_bModified;
 public:
     EditableColorConfig();
diff --git a/include/svtools/embedhlp.hxx b/include/svtools/embedhlp.hxx
index 7dad21d..29ac2dc 100644
--- a/include/svtools/embedhlp.hxx
+++ b/include/svtools/embedhlp.hxx
@@ -26,6 +26,7 @@
 #include <vcl/graph.hxx>
 #include <tools/mapunit.hxx>
 #include <rtl/ustring.hxx>
+#include <memory>
 
 namespace comphelper
 {
@@ -45,7 +46,7 @@ struct EmbeddedObjectRef_Impl;
 
 class SVT_DLLPUBLIC EmbeddedObjectRef
 {
-    EmbeddedObjectRef_Impl* mpImpl;
+    std::unique_ptr<EmbeddedObjectRef_Impl> mpImpl;
 
     SVT_DLLPRIVATE SvStream* GetGraphicStream( bool bUpdate ) const;
     SVT_DLLPRIVATE void GetReplacement( bool bUpdate );
diff --git a/include/svtools/extcolorcfg.hxx b/include/svtools/extcolorcfg.hxx
index a2b4726..1f0db36 100644
--- a/include/svtools/extcolorcfg.hxx
+++ b/include/svtools/extcolorcfg.hxx
@@ -25,6 +25,7 @@
 #include <com/sun/star/uno/Sequence.h>
 #include <svl/SfxBroadcaster.hxx>
 #include <svl/lstner.hxx>
+#include <memory>
 
 
 namespace svtools {
@@ -82,7 +83,7 @@ public:
 
 class SVT_DLLPUBLIC EditableExtendedColorConfig
 {
-    ExtendedColorConfig_Impl*   m_pImpl;
+    std::unique_ptr<ExtendedColorConfig_Impl> m_pImpl;
     bool                        m_bModified;
 public:
     EditableExtendedColorConfig();
diff --git a/include/svtools/fontsubstconfig.hxx b/include/svtools/fontsubstconfig.hxx
index ed2357c..6627b1d 100644
--- a/include/svtools/fontsubstconfig.hxx
+++ b/include/svtools/fontsubstconfig.hxx
@@ -21,6 +21,7 @@
 
 #include <svtools/svtdllapi.h>
 #include <unotools/configitem.hxx>
+#include <memory>
 
 struct SvtFontSubstConfig_Impl;
 
@@ -37,7 +38,7 @@ class SVT_DLLPUBLIC SvtFontSubstConfig : public utl::ConfigItem
 {
 private:
     bool                        bIsEnabled;
-    SvtFontSubstConfig_Impl*    pImpl;
+    std::unique_ptr<SvtFontSubstConfig_Impl> pImpl;
 
     virtual void                ImplCommit() override;
 
diff --git a/include/svtools/scriptedtext.hxx b/include/svtools/scriptedtext.hxx
index 5ddb37b..7195e67 100644
--- a/include/svtools/scriptedtext.hxx
+++ b/include/svtools/scriptedtext.hxx
@@ -22,6 +22,7 @@
 
 #include <svtools/svtdllapi.h>
 #include <com/sun/star/i18n/XBreakIterator.hpp>
+#include <memory>
 
 
 class OutputDevice;
@@ -39,7 +40,7 @@ This class provides drawing text with different script types on any output devic
 class SVT_DLLPUBLIC SvtScriptedTextHelper
 {
 private:
-    SvtScriptedTextHelper_Impl* mpImpl;             /// Implementation of class functionality.
+    std::unique_ptr<SvtScriptedTextHelper_Impl> mpImpl;             /// Implementation of class functionality.
 
     SvtScriptedTextHelper&      operator=( const SvtScriptedTextHelper& ) = delete;
 
diff --git a/include/svtools/svlbitm.hxx b/include/svtools/svlbitm.hxx
index c9b56ad..0bbb46d 100644
--- a/include/svtools/svlbitm.hxx
+++ b/include/svtools/svlbitm.hxx
@@ -62,7 +62,7 @@ private:
     Link<SvLBoxButtonData*,void> aLink;
     long                    nWidth;
     long                    nHeight;
-    SvLBoxButtonData_Impl*  pImpl;
+    std::unique_ptr<SvLBoxButtonData_Impl> pImpl;
     bool                    bDataOk;
     SvButtonState           eState;
     std::vector<Image>      aBmps;  // indices s. constants BMP_ ....
diff --git a/include/svtools/templatefoldercache.hxx b/include/svtools/templatefoldercache.hxx
index c01bfd0..dcb3e26 100644
--- a/include/svtools/templatefoldercache.hxx
+++ b/include/svtools/templatefoldercache.hxx
@@ -22,6 +22,7 @@
 
 #include <svtools/svtdllapi.h>
 #include <sal/types.h>
+#include <memory>
 
 
 namespace svt
@@ -60,7 +61,7 @@ namespace svt
     class SVT_DLLPUBLIC TemplateFolderCache
     {
     private:
-        TemplateFolderCacheImpl*        m_pImpl;
+        std::unique_ptr<TemplateFolderCacheImpl>     m_pImpl;
 
     public:
         /** ctor.
diff --git a/include/svtools/transfer.hxx b/include/svtools/transfer.hxx
index b256366..1ade1a9 100644
--- a/include/svtools/transfer.hxx
+++ b/include/svtools/transfer.hxx
@@ -41,6 +41,7 @@
 #include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp>
 #include <com/sun/star/embed/Aspects.hpp>
 #include <com/sun/star/io/XInputStream.hpp>
+#include <memory>
 
 class BitmapEx;
 class GDIMetaFile;
@@ -280,7 +281,7 @@ private:
     css::uno::Reference< css::datatransfer::clipboard::XClipboard >   mxClipboard;
     DataFlavorExVector*                                               mpFormats;
     TransferableObjectDescriptor*                                     mpObjDesc;
-    TransferableDataHelper_Impl*                                      mpImpl;
+    std::unique_ptr<TransferableDataHelper_Impl>                      mpImpl;
 
 protected:
     void                        InitFormats();
diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx
index 76f22af..8a1bd58 100644
--- a/svtools/source/config/colorcfg.cxx
+++ b/svtools/source/config/colorcfg.cxx
@@ -532,7 +532,6 @@ EditableColorConfig::~EditableColorConfig()
         m_pImpl->SetModified();
     if(m_pImpl->IsModified())
         m_pImpl->Commit();
-    delete m_pImpl;
 }
 
 uno::Sequence< OUString >  EditableColorConfig::GetSchemeNames() const
diff --git a/svtools/source/config/extcolorcfg.cxx b/svtools/source/config/extcolorcfg.cxx
index 9db6d6d..37eb861 100644
--- a/svtools/source/config/extcolorcfg.cxx
+++ b/svtools/source/config/extcolorcfg.cxx
@@ -624,7 +624,6 @@ EditableExtendedColorConfig::~EditableExtendedColorConfig()
         m_pImpl->SetModified();
     if(m_pImpl->IsModified())
         m_pImpl->Commit();
-    delete m_pImpl;
 }
 
 void EditableExtendedColorConfig::DeleteScheme(const OUString& rScheme )
diff --git a/svtools/source/config/fontsubstconfig.cxx b/svtools/source/config/fontsubstconfig.cxx
index 02a3844..6437788 100644
--- a/svtools/source/config/fontsubstconfig.cxx
+++ b/svtools/source/config/fontsubstconfig.cxx
@@ -90,7 +90,6 @@ SvtFontSubstConfig::SvtFontSubstConfig() :
 
 SvtFontSubstConfig::~SvtFontSubstConfig()
 {
-    delete pImpl;
 }
 
 void SvtFontSubstConfig::Notify( const css::uno::Sequence< OUString >& )
diff --git a/svtools/source/contnr/svlbitm.cxx b/svtools/source/contnr/svlbitm.cxx
index 1c50788..365c1a5 100644
--- a/svtools/source/contnr/svlbitm.cxx
+++ b/svtools/source/contnr/svlbitm.cxx
@@ -41,8 +41,6 @@ void SvLBoxButtonData::InitData( bool bImagesFromDefault, bool _bRadioBtn, const
 
     aBmps.resize((int)SvBmp::STATICIMAGE+1);
 
-    pImpl = new SvLBoxButtonData_Impl;
-
     bDataOk = false;
     eState = SV_BUTTON_UNCHECKED;
     pImpl->bDefaultImages = bImagesFromDefault;
@@ -53,22 +51,19 @@ void SvLBoxButtonData::InitData( bool bImagesFromDefault, bool _bRadioBtn, const
 }
 
 SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings )
+    : pImpl( new SvLBoxButtonData_Impl )
 {
     InitData( true, false, pControlForSettings );
 }
 
 SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings, bool _bRadioBtn )
+    : pImpl( new SvLBoxButtonData_Impl )
 {
     InitData( true, _bRadioBtn, pControlForSettings );
 }
 
 SvLBoxButtonData::~SvLBoxButtonData()
 {
-
-    delete pImpl;
-#ifdef DBG_UTIL
-    pImpl = nullptr;
-#endif
 }
 
 void SvLBoxButtonData::CallLink()
diff --git a/svtools/source/control/scriptedtext.cxx b/svtools/source/control/scriptedtext.cxx
index cc2760e..55c1015 100644
--- a/svtools/source/control/scriptedtext.cxx
+++ b/svtools/source/control/scriptedtext.cxx
@@ -316,7 +316,6 @@ SvtScriptedTextHelper::SvtScriptedTextHelper( const SvtScriptedTextHelper& _rCop
 
 SvtScriptedTextHelper::~SvtScriptedTextHelper()
 {
-    delete mpImpl;
 }
 
 void SvtScriptedTextHelper::SetFonts( vcl::Font* _pLatinFont, vcl::Font* _pAsianFont, vcl::Font* _pCmplxFont )
diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index 461de46..9d50a68 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -303,7 +303,6 @@ EmbeddedObjectRef::EmbeddedObjectRef( const EmbeddedObjectRef& rObj ) :
 EmbeddedObjectRef::~EmbeddedObjectRef()
 {
     Clear();
-    delete mpImpl;
 }
 
 void EmbeddedObjectRef::Assign( const uno::Reference < embed::XEmbeddedObject >& xObj, sal_Int64 nAspect )
diff --git a/svtools/source/misc/templatefoldercache.cxx b/svtools/source/misc/templatefoldercache.cxx
index 4487b12..1bceffc 100644
--- a/svtools/source/misc/templatefoldercache.cxx
+++ b/svtools/source/misc/templatefoldercache.cxx
@@ -832,7 +832,6 @@ namespace svt
 
     TemplateFolderCache::~TemplateFolderCache( )
     {
-        DELETEZ( m_pImpl );
     }
 
 
diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx
index 1d0bfb5..6a22fef 100644
--- a/svtools/source/misc/transfer.cxx
+++ b/svtools/source/misc/transfer.cxx
@@ -1279,7 +1279,6 @@ TransferableDataHelper::~TransferableDataHelper()
         delete mpFormats, mpFormats = nullptr;
         delete mpObjDesc, mpObjDesc = nullptr;
     }
-    delete mpImpl;
 }
 
 
diff --git a/svtools/source/uno/unocontroltablemodel.cxx b/svtools/source/uno/unocontroltablemodel.cxx
index 29aacfa..bda43e1 100644
--- a/svtools/source/uno/unocontroltablemodel.cxx
+++ b/svtools/source/uno/unocontroltablemodel.cxx
@@ -140,7 +140,6 @@ namespace svt { namespace table
 
     UnoControlTableModel::~UnoControlTableModel()
     {
-        DELETEZ( m_pImpl );
     }
 
 
diff --git a/svtools/source/uno/unocontroltablemodel.hxx b/svtools/source/uno/unocontroltablemodel.hxx
index ee3ca9d..2ffc749 100644
--- a/svtools/source/uno/unocontroltablemodel.hxx
+++ b/svtools/source/uno/unocontroltablemodel.hxx
@@ -35,6 +35,7 @@
 #include <rtl/ref.hxx>
 
 #include <boost/noncopyable.hpp>
+#include <memory>
 
 
 namespace svt { namespace table
@@ -49,7 +50,7 @@ namespace svt { namespace table
     class UnoControlTableModel : public ITableModel, public ITableDataSort
     {
     private:
-        UnoControlTableModel_Impl*     m_pImpl;
+        std::unique_ptr<UnoControlTableModel_Impl>  m_pImpl;
 
     public:
         UnoControlTableModel();


More information about the Libreoffice-commits mailing list