[Libreoffice-commits] core.git: cui/source include/vcl reportdesign/source sc/source sfx2/source svx/source sw/source vcl/headless vcl/inc vcl/opengl vcl/source vcl/unx

Noel Grandin noel.grandin at collabora.co.uk
Fri Jan 13 06:49:45 UTC 2017


 cui/source/options/optcolor.cxx                    |    2 -
 include/vcl/builder.hxx                            |    2 -
 include/vcl/commandevent.hxx                       |    4 +--
 include/vcl/field.hxx                              |    3 +-
 include/vcl/graph.hxx                              |    4 +--
 include/vcl/metaact.hxx                            |    5 ++--
 include/vcl/oldprintadaptor.hxx                    |    2 -
 include/vcl/print.hxx                              |    3 +-
 include/vcl/printerinfomanager.hxx                 |    3 +-
 include/vcl/textdata.hxx                           |    3 +-
 include/vcl/txtattr.hxx                            |    4 ++-
 reportdesign/source/ui/dlg/Condition.cxx           |    2 -
 sc/source/ui/condformat/condformatdlgentry.cxx     |    4 +--
 sc/source/ui/dbgui/sortkeydlg.cxx                  |    2 -
 sfx2/source/appl/newhelp.cxx                       |    2 -
 sfx2/source/dialog/backingwindow.cxx               |    2 -
 sfx2/source/dialog/dinfdlg.cxx                     |    8 +++----
 svx/source/dialog/ctredlin.cxx                     |    2 -
 svx/source/form/datanavi.cxx                       |    2 -
 svx/source/sidebar/PanelLayout.cxx                 |    2 -
 svx/source/sidebar/paragraph/ParaSpacingWindow.cxx |    8 +++----
 sw/source/ui/index/cnttab.cxx                      |    4 +--
 vcl/headless/svpglyphcache.cxx                     |    5 +---
 vcl/headless/svpinst.cxx                           |    2 -
 vcl/inc/controldata.hxx                            |    3 --
 vcl/inc/impbmp.hxx                                 |    5 ++--
 vcl/inc/opengl/x11/salvd.hxx                       |    3 +-
 vcl/inc/unx/geninst.h                              |    2 -
 vcl/opengl/x11/salvd.cxx                           |    3 --
 vcl/source/control/button.cxx                      |    6 ++---
 vcl/source/control/combobox.cxx                    |    2 -
 vcl/source/control/ctrl.cxx                        |    8 +------
 vcl/source/control/edit.cxx                        |   14 +++++-------
 vcl/source/control/field.cxx                       |    3 --
 vcl/source/control/fixed.cxx                       |    4 +--
 vcl/source/control/group.cxx                       |    2 -
 vcl/source/control/imp_listbox.cxx                 |    4 +--
 vcl/source/control/listbox.cxx                     |    2 -
 vcl/source/control/notebookbar.cxx                 |    2 -
 vcl/source/control/spinfld.cxx                     |    2 -
 vcl/source/edit/textdata.cxx                       |    9 ++-----
 vcl/source/edit/textdoc.cxx                        |    5 +---
 vcl/source/filter/ixbm/xbmread.cxx                 |   13 +++--------
 vcl/source/gdi/impbmp.cxx                          |    1 
 vcl/source/gdi/impgraph.cxx                        |    7 ++++--
 vcl/source/gdi/impvect.cxx                         |   11 ++++-----
 vcl/source/gdi/metaact.cxx                         |   24 +++++++--------------
 vcl/source/gdi/oldprintadaptor.cxx                 |    1 
 vcl/source/gdi/pdfwriter_impl.cxx                  |   15 +++++++++----
 vcl/source/gdi/pdfwriter_impl.hxx                  |    6 +++--
 vcl/source/gdi/print3.cxx                          |    1 
 vcl/source/window/commandevent.cxx                 |   17 +++-----------
 vcl/source/window/dialog.cxx                       |    1 
 vcl/source/window/dockwin.cxx                      |    2 -
 vcl/source/window/printdlg.cxx                     |    6 ++---
 vcl/source/window/syswin.cxx                       |   18 +++++++--------
 vcl/source/window/tabpage.cxx                      |    2 -
 vcl/source/window/toolbox.cxx                      |    4 +--
 vcl/unx/generic/app/geninst.cxx                    |    9 +++----
 vcl/unx/generic/printer/printerinfomanager.cxx     |    6 +----
 60 files changed, 140 insertions(+), 163 deletions(-)

New commits:
commit e8b49f09074fe184374bee5062715357427ae044
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Wed Jan 11 09:48:18 2017 +0200

    new loplugin: useuniqueptr: vcl
    
    Change-Id: Idcbc8655108ff57c06c33bbcabd652387bf3c4ec
    Reviewed-on: https://gerrit.libreoffice.org/32948
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx
index 5af0986..5508d98 100644
--- a/cui/source/options/optcolor.cxx
+++ b/cui/source/options/optcolor.cxx
@@ -481,7 +481,7 @@ void ColorConfigWindow_Impl::Entry::SetColor (Color aColor)
 ColorConfigWindow_Impl::ColorConfigWindow_Impl(vcl::Window* pParent)
     : VclContainer(pParent)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "cui/ui/colorconfigwin.ui");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "cui/ui/colorconfigwin.ui"));
     get(m_pGrid, "ColorConfigWindow");
     CreateEntries();
     SetAppearance();
diff --git a/include/vcl/builder.hxx b/include/vcl/builder.hxx
index 428f9aa..e849ee5d 100644
--- a/include/vcl/builder.hxx
+++ b/include/vcl/builder.hxx
@@ -473,7 +473,7 @@ public:
     }
 
 protected:
-    VclBuilder *m_pUIBuilder;
+    std::unique_ptr<VclBuilder> m_pUIBuilder;
 };
 
 /*
diff --git a/include/vcl/commandevent.hxx b/include/vcl/commandevent.hxx
index 51dab89..8d9496d 100644
--- a/include/vcl/commandevent.hxx
+++ b/include/vcl/commandevent.hxx
@@ -91,7 +91,7 @@ class VCL_DLLPUBLIC CommandExtTextInputData
 {
 private:
     OUString            maText;
-    ExtTextInputAttr*   mpTextAttr;
+    std::unique_ptr<ExtTextInputAttr[]> mpTextAttr;
     sal_Int32           mnCursorPos;
     sal_uInt16          mnCursorFlags;
     bool                mbOnlyCursor;
@@ -106,7 +106,7 @@ public:
                         ~CommandExtTextInputData();
 
     const OUString&     GetText() const { return maText; }
-    const ExtTextInputAttr* GetTextAttr() const { return mpTextAttr; }
+    const ExtTextInputAttr* GetTextAttr() const { return mpTextAttr.get(); }
 
     sal_Int32           GetCursorPos() const { return mnCursorPos; }
     bool                IsCursorVisible() const { return (mnCursorFlags & EXTTEXTINPUT_CURSOR_INVISIBLE) == 0; }
diff --git a/include/vcl/field.hxx b/include/vcl/field.hxx
index c19865b..b149d1a 100644
--- a/include/vcl/field.hxx
+++ b/include/vcl/field.hxx
@@ -39,7 +39,8 @@ class VCL_DLLPUBLIC FormatterBase
 {
 private:
     VclPtr<Edit>            mpField;
-    LocaleDataWrapper*      mpLocaleDataWrapper;
+    std::unique_ptr<LocaleDataWrapper>
+                            mpLocaleDataWrapper;
     bool                    mbReformat;
     bool                    mbStrictFormat;
     bool                    mbEmptyFieldValue;
diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx
index 3869db5..1339a88 100644
--- a/include/vcl/graph.hxx
+++ b/include/vcl/graph.hxx
@@ -66,9 +66,9 @@ public:
 protected:
     OUString        maUpperName;
 
-                    GraphicReader() : mpReaderData( nullptr ) {}
+                    GraphicReader();
 private:
-    ReaderData*     mpReaderData;
+    std::unique_ptr<ReaderData>   mpReaderData;
 };
 
 class VCL_DLLPUBLIC GraphicConversionParameters
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index c7a26cd..5041f3a 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -445,7 +445,8 @@ private:
 
     Point       maStartPt;
     OUString    maStr;
-    long*       mpDXAry;
+    std::unique_ptr<long[]>
+                mpDXAry;
     sal_Int32   mnIndex;
     sal_Int32   mnLen;
 
@@ -473,7 +474,7 @@ public:
     const OUString& GetText() const { return maStr; }
     sal_Int32       GetIndex() const { return mnIndex; }
     sal_Int32       GetLen() const { return mnLen; }
-    long*           GetDXArray() const { return mpDXAry; }
+    long*           GetDXArray() const { return mpDXAry.get(); }
 };
 
 class VCL_DLLPUBLIC MetaStretchTextAction : public MetaAction
diff --git a/include/vcl/oldprintadaptor.hxx b/include/vcl/oldprintadaptor.hxx
index bd65f4d..9889a18 100644
--- a/include/vcl/oldprintadaptor.hxx
+++ b/include/vcl/oldprintadaptor.hxx
@@ -27,7 +27,7 @@ namespace vcl
     struct ImplOldStyleAdaptorData;
     class VCL_DLLPUBLIC OldStylePrintAdaptor : public PrinterController
     {
-        ImplOldStyleAdaptorData*    mpData;
+        std::unique_ptr<ImplOldStyleAdaptorData>  mpData;
     public:
         OldStylePrintAdaptor( const VclPtr< Printer >& );
         virtual ~OldStylePrintAdaptor() override;
diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx
index f452564..a743cb0 100644
--- a/include/vcl/print.hxx
+++ b/include/vcl/print.hxx
@@ -392,7 +392,8 @@ enum class NupOrderType
 
 class VCL_DLLPUBLIC PrinterController
 {
-    ImplPrinterControllerData*          mpImplData;
+    std::unique_ptr<ImplPrinterControllerData>
+                                        mpImplData;
 protected:
                                         PrinterController( const VclPtr<Printer>& );
 public:
diff --git a/include/vcl/printerinfomanager.hxx b/include/vcl/printerinfomanager.hxx
index 258b544..4b1105d 100644
--- a/include/vcl/printerinfomanager.hxx
+++ b/include/vcl/printerinfomanager.hxx
@@ -107,7 +107,8 @@ protected:
 
     std::list< SystemPrintQueue >     m_aSystemPrintQueues;
 
-    SystemQueueInfo*                  m_pQueueInfo;
+    std::unique_ptr<SystemQueueInfo>
+                                      m_pQueueInfo;
 
     Type                              m_eType;
     bool                              m_bUseIncludeFeature;
diff --git a/include/vcl/textdata.hxx b/include/vcl/textdata.hxx
index de0dabd..0ce7955 100644
--- a/include/vcl/textdata.hxx
+++ b/include/vcl/textdata.hxx
@@ -25,6 +25,7 @@
 #include <rtl/ustring.hxx>
 #include <svl/hint.hxx>
 #include <vcl/dllapi.h>
+#include <memory>
 
 enum class ExtTextInputAttr;
 
@@ -126,7 +127,7 @@ public:
 struct TEIMEInfos
 {
     OUString    aOldTextAfterStartPos;
-    ExtTextInputAttr* pAttribs;
+    std::unique_ptr<ExtTextInputAttr[]> pAttribs;
     TextPaM     aPos;
     sal_Int32   nLen;
     bool        bCursor;
diff --git a/include/vcl/txtattr.hxx b/include/vcl/txtattr.hxx
index cab94b2..a02ef58 100644
--- a/include/vcl/txtattr.hxx
+++ b/include/vcl/txtattr.hxx
@@ -25,6 +25,7 @@
 #include <tools/debug.hxx>
 #include <vcl/vclenum.hxx>
 #include <vcl/dllapi.h>
+#include <memory>
 
 namespace vcl { class Font; }
 
@@ -129,7 +130,8 @@ public:
 class TextCharAttrib
 {
 private:
-    TextAttrib*     mpAttr;
+    std::unique_ptr<TextAttrib>
+                    mpAttr;
     sal_Int32       mnStart;
     sal_Int32       mnEnd;
 
diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx
index 4632306..6136ef5 100644
--- a/reportdesign/source/ui/dlg/Condition.cxx
+++ b/reportdesign/source/ui/dlg/Condition.cxx
@@ -113,7 +113,7 @@ Condition::Condition( vcl::Window* _pParent, IConditionalFormatAction& _rAction,
     , m_nCondIndex(0)
     , m_bInDestruction(false)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "modules/dbreport/ui/conditionwin.ui");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "modules/dbreport/ui/conditionwin.ui"));
 
     get(m_pHeader, "headerLabel");
     get(m_pConditionType, "typeCombobox");
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index 3433673..792bd9a 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -45,7 +45,7 @@ ScCondFrmtEntry::ScCondFrmtEntry(vcl::Window* pParent, ScDocument* pDoc, const S
     , mpDoc(pDoc)
     , maPos(rPos)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "modules/scalc/ui/conditionalentry.ui");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "modules/scalc/ui/conditionalentry.ui"));
 
     get(maGrid, "grid");
     get(maFtCondNr, "number");
@@ -1350,7 +1350,7 @@ public:
 ScIconSetFrmtDataEntry::ScIconSetFrmtDataEntry(vcl::Window* pParent, ScIconSetType eType, ScDocument* pDoc, sal_Int32 i, const ScColorScaleEntry* pEntry)
     : VclContainer(pParent)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "modules/scalc/ui/conditionaliconset.ui");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "modules/scalc/ui/conditionaliconset.ui"));
     get(maGrid, "ConditionalIconSet");
     get(maImgIcon, "icon");
     get(maFtEntry, "label");
diff --git a/sc/source/ui/dbgui/sortkeydlg.cxx b/sc/source/ui/dbgui/sortkeydlg.cxx
index 2d11da4..adf72d7 100644
--- a/sc/source/ui/dbgui/sortkeydlg.cxx
+++ b/sc/source/ui/dbgui/sortkeydlg.cxx
@@ -13,7 +13,7 @@
 
 ScSortKeyItem::ScSortKeyItem(vcl::Window* pParent)
 {
-    m_pUIBuilder = new VclBuilder(pParent, getUIRootDir(), "modules/scalc/ui/sortkey.ui");
+    m_pUIBuilder.reset(new VclBuilder(pParent, getUIRootDir(), "modules/scalc/ui/sortkey.ui"));
 
     get(m_pFrame, "SortKeyFrame");
     get(m_pFlSort, "sortft");
diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index 08f6a32..e29f139 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -1414,7 +1414,7 @@ SfxHelpIndexWindow_Impl::SfxHelpIndexWindow_Impl(SfxHelpWindow_Impl* _pParent)
     , bWasCursorLeftOrRight(false)
     , bIsInitDone(false)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "sfx/ui/helpcontrol.ui", "HelpControl");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "sfx/ui/helpcontrol.ui", "HelpControl"));
     get(m_pActiveLB, "active");
     get(m_pTabCtrl, "tabcontrol");
 
diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx
index 9136fee..3fb5991 100644
--- a/sfx2/source/dialog/backingwindow.cxx
+++ b/sfx2/source/dialog/backingwindow.cxx
@@ -75,7 +75,7 @@ BackingWindow::BackingWindow( vcl::Window* i_pParent ) :
     mbInitControls( false ),
     mnHideExternalLinks( 0 )
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "sfx/ui/startcenter.ui", "StartCenter" );
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "sfx/ui/startcenter.ui", "StartCenter" ));
 
     get(mpOpenButton, "open_all");
     get(mpRemoteButton, "open_remote");
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 93d40b5..410d5e6 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -2308,7 +2308,7 @@ VclPtr<SfxTabPage> SfxCustomPropertiesPage::Create( vcl::Window* pParent, const
 
 CmisValue::CmisValue( vcl::Window* pParent, const OUString& aStr )
 {
-    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    m_pUIBuilder.reset(new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui"));
     get( m_aValueEdit, "value");
     m_aValueEdit->Show();
     m_aValueEdit->SetText( aStr );
@@ -2316,7 +2316,7 @@ CmisValue::CmisValue( vcl::Window* pParent, const OUString& aStr )
 
 CmisDateTime::CmisDateTime( vcl::Window* pParent, const util::DateTime& aDateTime )
 {
-    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    m_pUIBuilder.reset(new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui"));
     get( m_aDateField, "date");
     get( m_aTimeField, "time");
     m_aDateField->Show();
@@ -2327,7 +2327,7 @@ CmisDateTime::CmisDateTime( vcl::Window* pParent, const util::DateTime& aDateTim
 
 CmisYesNo::CmisYesNo( vcl::Window* pParent, bool bValue )
 {
-    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    m_pUIBuilder.reset(new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui"));
     get( m_aYesButton, "yes");
     get( m_aNoButton, "no");
     m_aYesButton->Show();
@@ -2346,7 +2346,7 @@ CmisPropertyLine::CmisPropertyLine(vcl::Window* pParent)
     , m_bMultiValued(false)
     , m_bOpenChoice(false)
 {
-    m_pUIBuilder = new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui");
+    m_pUIBuilder.reset(new VclBuilder( pParent, getUIRootDir(), "sfx/ui/cmisline.ui"));
     get( m_pFrame, "CmisFrame" );
     get( m_aName, "name" );
     get( m_aType, "type" );
diff --git a/svx/source/dialog/ctredlin.cxx b/svx/source/dialog/ctredlin.cxx
index 26dd996..80fcd2a 100644
--- a/svx/source/dialog/ctredlin.cxx
+++ b/svx/source/dialog/ctredlin.cxx
@@ -1057,7 +1057,7 @@ IMPL_LINK( SvxTPFilter, RefHandle, Button*, pRef, void )
 SvxAcceptChgCtr::SvxAcceptChgCtr(vcl::Window* pParent, VclBuilderContainer* pTopLevel)
     : TabControl(pParent, WB_TABSTOP | WB_DIALOGCONTROL)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "svx/ui/redlinecontrol.ui", "RedlineControl");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "svx/ui/redlinecontrol.ui", "RedlineControl"));
 
     pTPFilter = VclPtr<SvxTPFilter>::Create(this);
     pTPView = VclPtr<SvxTPView>::Create(this, pTopLevel);
diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx
index 56b114c..b7298ef 100644
--- a/svx/source/form/datanavi.cxx
+++ b/svx/source/form/datanavi.cxx
@@ -1354,7 +1354,7 @@ namespace svxform
         , m_bIsNotifyDisabled(false)
         , m_xDataListener(new DataListener(this))
     {
-        m_pUIBuilder = new VclBuilder(this, getUIRootDir(), "svx/ui/datanavigator.ui", "DataNavigator");
+        m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "svx/ui/datanavigator.ui", "DataNavigator"));
         get(m_pModelsBox, "modelslist");
         get(m_pModelBtn, "modelsbutton");
         get(m_pTabCtrl, "tabcontrol");
diff --git a/svx/source/sidebar/PanelLayout.cxx b/svx/source/sidebar/PanelLayout.cxx
index 74451ec..fd8e075 100644
--- a/svx/source/sidebar/PanelLayout.cxx
+++ b/svx/source/sidebar/PanelLayout.cxx
@@ -24,7 +24,7 @@ PanelLayout::PanelLayout(vcl::Window* pParent, const OString& rID, const OUStrin
     , m_bInClose(false)
 {
     SetStyle(GetStyle() | WB_DIALOGCONTROL);
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame);
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame));
     m_aPanelLayoutIdle.SetPriority(SchedulerPriority::RESIZE);
     m_aPanelLayoutIdle.SetIdleHdl( LINK( this, PanelLayout, ImplHandlePanelLayoutTimerHdl ) );
     if (GetSettings().GetStyleSettings().GetAutoMnemonic())
diff --git a/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx b/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx
index 9ebea6a..8225df9 100644
--- a/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx
+++ b/svx/source/sidebar/paragraph/ParaSpacingWindow.cxx
@@ -38,10 +38,10 @@ ParaULSpacingWindow::ParaULSpacingWindow(vcl::Window* pParent, css::uno::Referen
     : VclVBox(pParent)
     , m_eUnit(MapUnit::MapTwip)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(),
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(),
                                   "svx/ui/paraulspacing.ui",
                                   "ParaULSpacingWindow",
-                                  xFrame);
+                                  xFrame));
 
     get(m_pAboveSpacing, "aboveparaspacing");
     get(m_pBelowSpacing, "belowparaspacing");
@@ -107,10 +107,10 @@ ParaLRSpacingWindow::ParaLRSpacingWindow(vcl::Window* pParent, css::uno::Referen
     : VclVBox(pParent)
     , m_eUnit(MapUnit::MapTwip)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(),
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(),
                                   "svx/ui/paralrspacing.ui",
                                   "ParaLRSpacingWindow",
-                                  xFrame);
+                                  xFrame));
 
     get(m_pBeforeSpacing, "beforetextindent");
     get(m_pAfterSpacing, "aftertextindent");
diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx
index bb187b0..536326d 100644
--- a/sw/source/ui/index/cnttab.cxx
+++ b/sw/source/ui/index/cnttab.cxx
@@ -2690,8 +2690,8 @@ SwTokenWindow::SwTokenWindow(vcl::Window* pParent)
     , pActiveCtrl(nullptr)
     , m_pParent(nullptr)
 {
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(),
-        "modules/swriter/ui/tokenwidget.ui", "TokenWidget");
+    m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(),
+        "modules/swriter/ui/tokenwidget.ui", "TokenWidget"));
     get(m_pLeftScrollWin, "left");
     get(m_pCtrlParentWin, "ctrl");
     m_pCtrlParentWin->set_height_request(Edit::GetMinimumEditSize().Height());
diff --git a/vcl/headless/svpglyphcache.cxx b/vcl/headless/svpglyphcache.cxx
index 087fb7c..cff68e3 100644
--- a/vcl/headless/svpglyphcache.cxx
+++ b/vcl/headless/svpglyphcache.cxx
@@ -33,15 +33,15 @@ namespace
     struct GlyphCacheHolder
     {
     private:
-        GlyphCache* m_pSvpGlyphCache;
+        std::unique_ptr<GlyphCache> m_pSvpGlyphCache;
 
         GlyphCacheHolder(const GlyphCacheHolder&) = delete;
         GlyphCacheHolder& operator=(const GlyphCacheHolder&) = delete;
 
     public:
         GlyphCacheHolder()
+            : m_pSvpGlyphCache( new GlyphCache )
         {
-            m_pSvpGlyphCache = new GlyphCache;
         }
         GlyphCache& getGlyphCache()
         {
@@ -49,7 +49,6 @@ namespace
         }
         ~GlyphCacheHolder()
         {
-            delete m_pSvpGlyphCache;
         }
     };
 
diff --git a/vcl/headless/svpinst.cxx b/vcl/headless/svpinst.cxx
index 0397342..710305d 100644
--- a/vcl/headless/svpinst.cxx
+++ b/vcl/headless/svpinst.cxx
@@ -234,7 +234,7 @@ bool SvpSalInstance::CheckTimeout( bool bExecuteTimers )
                 m_aTimeout = aTimeOfDay;
                 m_aTimeout += m_nTimeoutMS;
 
-                osl::Guard< comphelper::SolarMutex > aGuard( mpSalYieldMutex );
+                osl::Guard< comphelper::SolarMutex > aGuard( mpSalYieldMutex.get() );
 
                 // notify
                 ImplSVData* pSVData = ImplGetSVData();
diff --git a/vcl/inc/controldata.hxx b/vcl/inc/controldata.hxx
index b402802..5554afc 100644
--- a/vcl/inc/controldata.hxx
+++ b/vcl/inc/controldata.hxx
@@ -26,7 +26,7 @@ namespace vcl
 {
     struct ImplControlData
     {
-        mutable ControlLayoutData*  mpLayoutData;
+        mutable std::unique_ptr<ControlLayoutData>  mpLayoutData;
         VclPtr<OutputDevice>        mpReferenceDevice;
 
         ImplControlData()
@@ -37,7 +37,6 @@ namespace vcl
 
         ~ImplControlData()
         {
-            delete mpLayoutData;
         }
     };
 
diff --git a/vcl/inc/impbmp.hxx b/vcl/inc/impbmp.hxx
index 4d365a7..dd607fc 100644
--- a/vcl/inc/impbmp.hxx
+++ b/vcl/inc/impbmp.hxx
@@ -37,7 +37,8 @@ class Bitmap;
 class ImpBitmap
 {
 private:
-    SalBitmap*          mpSalBitmap;
+    std::unique_ptr<SalBitmap>
+                        mpSalBitmap;
 
 public:
                         ImpBitmap();
@@ -49,7 +50,7 @@ public:
 
     bool                ImplIsEqual(const ImpBitmap& rBmp) const;
 
-    SalBitmap*          ImplGetSalBitmap() const { return mpSalBitmap; }
+    SalBitmap*          ImplGetSalBitmap() const { return mpSalBitmap.get(); }
 
     bool                ImplCreate( const Size& rSize, sal_uInt16 nBitCount, const BitmapPalette& rPal );
     bool                ImplCreate( const ImpBitmap& rImpBitmap );
diff --git a/vcl/inc/opengl/x11/salvd.hxx b/vcl/inc/opengl/x11/salvd.hxx
index d8e6d6a..ea4f5c8 100644
--- a/vcl/inc/opengl/x11/salvd.hxx
+++ b/vcl/inc/opengl/x11/salvd.hxx
@@ -23,7 +23,8 @@ class X11SalGraphics;
 class X11OpenGLSalVirtualDevice : public SalVirtualDevice
 {
     SalDisplay       *mpDisplay;
-    X11SalGraphics   *mpGraphics;
+    std::unique_ptr<X11SalGraphics>
+                      mpGraphics;
     bool              mbGraphics;         // is Graphics used
     SalX11Screen      mnXScreen;
     int               mnWidth;
diff --git a/vcl/inc/unx/geninst.h b/vcl/inc/unx/geninst.h
index 5a9786f..e79fd1f 100644
--- a/vcl/inc/unx/geninst.h
+++ b/vcl/inc/unx/geninst.h
@@ -75,7 +75,7 @@ class VCL_DLLPUBLIC SalGenericInstance : public SalInstance
 {
 protected:
     bool           mbPrinterInit;
-    SalYieldMutex *mpSalYieldMutex;
+    std::unique_ptr<SalYieldMutex> mpSalYieldMutex;
 
 public:
     SalGenericInstance( SalYieldMutex* pMutex )
diff --git a/vcl/opengl/x11/salvd.cxx b/vcl/opengl/x11/salvd.cxx
index ff0a2c3..17edbf6 100644
--- a/vcl/opengl/x11/salvd.cxx
+++ b/vcl/opengl/x11/salvd.cxx
@@ -69,7 +69,6 @@ X11OpenGLSalVirtualDevice::X11OpenGLSalVirtualDevice( SalGraphics* pGraphics,
 
 X11OpenGLSalVirtualDevice::~X11OpenGLSalVirtualDevice()
 {
-    delete mpGraphics;
 }
 
 SalGraphics* X11OpenGLSalVirtualDevice::AcquireGraphics()
@@ -80,7 +79,7 @@ SalGraphics* X11OpenGLSalVirtualDevice::AcquireGraphics()
     if( mpGraphics )
         mbGraphics = true;
 
-    return mpGraphics;
+    return mpGraphics.get();
 }
 
 void X11OpenGLSalVirtualDevice::ReleaseGraphics( SalGraphics* )
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 9e0140e..486625b 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -1353,7 +1353,7 @@ void PushButton::KeyUp( const KeyEvent& rKEvt )
 
 void PushButton::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<PushButton*>(this)->Invalidate();
 }
 
@@ -2422,7 +2422,7 @@ void RadioButton::KeyUp( const KeyEvent& rKEvt )
 
 void RadioButton::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<RadioButton*>(this)->Invalidate();
 }
 
@@ -3293,7 +3293,7 @@ void CheckBox::KeyUp( const KeyEvent& rKEvt )
 
 void CheckBox::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<CheckBox*>(this)->Invalidate();
 }
 
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 15b7344..118bad1 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -588,7 +588,7 @@ bool ComboBox::IsDropDownBox() const { return m_pImpl->m_pFloatWin != nullptr; }
 
 void ComboBox::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     AppendLayoutData( *m_pImpl->m_pSubEdit );
     m_pImpl->m_pSubEdit->SetLayoutDataParent( this );
     ImplListBoxWindow* rMainWindow = m_pImpl->m_pImplLB->GetMainWindow();
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx
index 9016b86..94af54c 100644
--- a/vcl/source/control/ctrl.cxx
+++ b/vcl/source/control/ctrl.cxx
@@ -87,7 +87,7 @@ void Control::FillLayoutData() const
 void Control::CreateLayoutData() const
 {
     SAL_WARN_IF( mpControlData->mpLayoutData, "vcl", "Control::CreateLayoutData: should be called with non-existent layout data only!" );
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
 }
 
 bool Control::HasLayoutData() const
@@ -325,11 +325,7 @@ void Control::SetLayoutDataParent( const Control* pParent ) const
 
 void Control::ImplClearLayoutData() const
 {
-    if (mpControlData)
-    {
-        delete mpControlData->mpLayoutData;
-        mpControlData->mpLayoutData = nullptr;
-    }
+    mpControlData->mpLayoutData.reset();
 }
 
 void Control::ImplDrawFrame( OutputDevice* pDev, Rectangle& rRect )
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index e2e17d4..a2f700c 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -113,7 +113,8 @@ struct DDInfo
 struct Impl_IMEInfos
 {
     OUString      aOldTextAfterStartPos;
-    ExtTextInputAttr* pAttribs;
+    std::unique_ptr<ExtTextInputAttr[]>
+                  pAttribs;
     sal_Int32     nPos;
     sal_Int32     nLen;
     bool          bCursor;
@@ -138,21 +139,18 @@ Impl_IMEInfos::Impl_IMEInfos(sal_Int32 nP, const OUString& rOldTextAfterStartPos
 
 Impl_IMEInfos::~Impl_IMEInfos()
 {
-    delete[] pAttribs;
 }
 
 void Impl_IMEInfos::CopyAttribs(const ExtTextInputAttr* pA, sal_Int32 nL)
 {
     nLen = nL;
-    delete[] pAttribs;
-    pAttribs = new ExtTextInputAttr[ nL ];
-    memcpy( pAttribs, pA, nL*sizeof(ExtTextInputAttr) );
+    pAttribs.reset(new ExtTextInputAttr[ nL ]);
+    memcpy( pAttribs.get(), pA, nL*sizeof(ExtTextInputAttr) );
 }
 
 void Impl_IMEInfos::DestroyAttribs()
 {
-    delete[] pAttribs;
-    pAttribs = nullptr;
+    pAttribs.reset();
     nLen = 0;
 }
 
@@ -1724,7 +1722,7 @@ void Edit::KeyInput( const KeyEvent& rKEvt )
 
 void Edit::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<Edit*>(this)->Invalidate();
 }
 
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 4c061fd..50c83c1 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -379,14 +379,13 @@ FormatterBase::FormatterBase()
 
 FormatterBase::~FormatterBase()
 {
-    delete mpLocaleDataWrapper;
 }
 
 LocaleDataWrapper& FormatterBase::ImplGetLocaleDataWrapper() const
 {
     if ( !mpLocaleDataWrapper )
     {
-        const_cast<FormatterBase*>(this)->mpLocaleDataWrapper = new LocaleDataWrapper( GetLanguageTag() );
+        const_cast<FormatterBase*>(this)->mpLocaleDataWrapper.reset( new LocaleDataWrapper( GetLanguageTag() ) );
     }
     return *mpLocaleDataWrapper;
 }
diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx
index 688c778..483e136 100644
--- a/vcl/source/control/fixed.cxx
+++ b/vcl/source/control/fixed.cxx
@@ -370,7 +370,7 @@ Size FixedText::GetOptimalSize() const
 
 void FixedText::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     ImplDraw(const_cast<FixedText*>(this), DrawFlags::NONE, Point(), GetOutputSizePixel(), true);
     //const_cast<FixedText*>(this)->Invalidate();
 }
@@ -575,7 +575,7 @@ FixedLine::FixedLine( vcl::Window* pParent, WinBits nStyle ) :
 
 void FixedLine::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<FixedLine*>(this)->Invalidate();
 }
 
diff --git a/vcl/source/control/group.cxx b/vcl/source/control/group.cxx
index 680362a..68cd703 100644
--- a/vcl/source/control/group.cxx
+++ b/vcl/source/control/group.cxx
@@ -184,7 +184,7 @@ void GroupBox::ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
 
 void GroupBox::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<GroupBox*>(this)->ImplDraw( const_cast<GroupBox*>(this), DrawFlags::NONE, Point(), GetOutputSizePixel(), true );
 }
 
diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx
index 6f6a3ed..806c26f 100644
--- a/vcl/source/control/imp_listbox.cxx
+++ b/vcl/source/control/imp_listbox.cxx
@@ -1851,7 +1851,7 @@ void ImplListBoxWindow::DrawEntry(vcl::RenderContext& rRenderContext, sal_Int32
 
 void ImplListBoxWindow::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const_cast<ImplListBoxWindow*>(this)->Invalidate(Rectangle(Point(0, 0), GetOutputSize()));
 }
 
@@ -2585,7 +2585,7 @@ void ImplWin::MouseButtonDown( const MouseEvent& )
 
 void ImplWin::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     ImplWin* pThis = const_cast<ImplWin*>(this);
     pThis->ImplDraw(*pThis, true);
 }
diff --git a/vcl/source/control/listbox.cxx b/vcl/source/control/listbox.cxx
index 3d523d0..225efd5 100644
--- a/vcl/source/control/listbox.cxx
+++ b/vcl/source/control/listbox.cxx
@@ -642,7 +642,7 @@ void ListBox::Resize()
 
 void ListBox::FillLayoutData() const
 {
-    mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+    mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
     const ImplListBoxWindow* rMainWin = mpImplLB->GetMainWindow();
     if( mpFloatWin )
     {
diff --git a/vcl/source/control/notebookbar.cxx b/vcl/source/control/notebookbar.cxx
index 837c515..78d14c5 100644
--- a/vcl/source/control/notebookbar.cxx
+++ b/vcl/source/control/notebookbar.cxx
@@ -37,7 +37,7 @@ NotebookBar::NotebookBar(Window* pParent, const OString& rID, const OUString& rU
     : Control(pParent), m_pEventListener(new NotebookBarContextChangeEventListener(this))
 {
     SetStyle(GetStyle() | WB_DIALOGCONTROL);
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame);
+    m_pUIBuilder.reset( new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame) );
 
     // In the Notebookbar's .ui file must exist control handling context
     // - implementing NotebookbarContextControl interface with id "ContextContainer"
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index 169b6c3..45d4dff 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -576,7 +576,7 @@ void SpinField::FillLayoutData() const
 {
     if (mbSpin)
     {
-        mpControlData->mpLayoutData = new vcl::ControlLayoutData();
+        mpControlData->mpLayoutData.reset( new vcl::ControlLayoutData );
         AppendLayoutData(*GetSubEdit());
         GetSubEdit()->SetLayoutDataParent(this);
     }
diff --git a/vcl/source/edit/textdata.cxx b/vcl/source/edit/textdata.cxx
index dec9f36..77abfb0 100644
--- a/vcl/source/edit/textdata.cxx
+++ b/vcl/source/edit/textdata.cxx
@@ -331,21 +331,18 @@ TEIMEInfos::TEIMEInfos( const TextPaM& rPos, const OUString& rOldTextAfterStartP
 
 TEIMEInfos::~TEIMEInfos()
 {
-    delete[] pAttribs;
 }
 
 void TEIMEInfos::CopyAttribs(const ExtTextInputAttr* pA, sal_Int32 nL)
 {
     nLen = nL;
-    delete[] pAttribs;
-    pAttribs = new ExtTextInputAttr[ nL ];
-    memcpy( pAttribs, pA, nL*sizeof(ExtTextInputAttr) );
+    pAttribs.reset( new ExtTextInputAttr[ nL ] );
+    memcpy( pAttribs.get(), pA, nL*sizeof(ExtTextInputAttr) );
 }
 
 void TEIMEInfos::DestroyAttribs()
 {
-    delete[] pAttribs;
-    pAttribs = nullptr;
+    pAttribs.reset();
     nLen = 0;
 }
 
diff --git a/vcl/source/edit/textdoc.cxx b/vcl/source/edit/textdoc.cxx
index c54e135..aacd1d2 100644
--- a/vcl/source/edit/textdoc.cxx
+++ b/vcl/source/edit/textdoc.cxx
@@ -29,21 +29,20 @@ static bool CompareStart( const std::unique_ptr<TextCharAttrib>& pFirst, const s
 
 TextCharAttrib::TextCharAttrib( const TextAttrib& rAttr, sal_Int32 nStart, sal_Int32 nEnd )
 {
-    mpAttr = rAttr.Clone();
+    mpAttr.reset( rAttr.Clone() );
     mnStart = nStart;
     mnEnd = nEnd;
 }
 
 TextCharAttrib::TextCharAttrib( const TextCharAttrib& rTextCharAttrib )
 {
-    mpAttr = rTextCharAttrib.GetAttr().Clone();
+    mpAttr.reset( rTextCharAttrib.GetAttr().Clone() );
     mnStart = rTextCharAttrib.mnStart;
     mnEnd = rTextCharAttrib.mnEnd;
 }
 
 TextCharAttrib::~TextCharAttrib()
 {
-    delete mpAttr;
 }
 
 TextCharAttribList::TextCharAttribList()
diff --git a/vcl/source/filter/ixbm/xbmread.cxx b/vcl/source/filter/ixbm/xbmread.cxx
index 6e66d9e..1e80a1f 100644
--- a/vcl/source/filter/ixbm/xbmread.cxx
+++ b/vcl/source/filter/ixbm/xbmread.cxx
@@ -39,7 +39,8 @@ class XBMReader : public GraphicReader
     SvStream&           rIStm;
     Bitmap              aBmp1;
     Bitmap::ScopedWriteAccess pAcc1;
-    short*              pHexTable;
+    std::unique_ptr<short[]>
+                        pHexTable;
     BitmapColor         aWhite;
     BitmapColor         aBlack;
     long                nLastPos;
@@ -55,7 +56,6 @@ class XBMReader : public GraphicReader
 public:
 
     explicit        XBMReader( SvStream& rStm );
-    virtual         ~XBMReader() override;
 
     ReadState       ReadXBM( Graphic& rGraphic );
 };
@@ -67,19 +67,14 @@ XBMReader::XBMReader( SvStream& rStm ) :
             nHeight         ( 0 ),
             bStatus         ( true )
 {
-    pHexTable = new short[ 256 ];
+    pHexTable.reset( new short[ 256 ] );
     maUpperName = "SVIXBM";
     InitTable();
 }
 
-XBMReader::~XBMReader()
-{
-    delete[] pHexTable;
-}
-
 void XBMReader::InitTable()
 {
-    memset( pHexTable, 0, sizeof( short ) * 256 );
+    memset( pHexTable.get(), 0, sizeof( short ) * 256 );
 
     pHexTable[(int)'0'] = 0;
     pHexTable[(int)'1'] = 1;
diff --git a/vcl/source/gdi/impbmp.cxx b/vcl/source/gdi/impbmp.cxx
index ab06a71..1338685 100644
--- a/vcl/source/gdi/impbmp.cxx
+++ b/vcl/source/gdi/impbmp.cxx
@@ -36,7 +36,6 @@ ImpBitmap::ImpBitmap(SalBitmap* pBitmap)
 
 ImpBitmap::~ImpBitmap()
 {
-    delete mpSalBitmap;
 }
 
 bool ImpBitmap::ImplIsEqual(const ImpBitmap& rBmp) const
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 5689f27..2fba2a6 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -68,9 +68,12 @@ public:
     Size    maPreviewSize;
 };
 
+GraphicReader::GraphicReader()
+{
+}
+
 GraphicReader::~GraphicReader()
 {
-    delete mpReaderData;
 }
 
 void GraphicReader::DisablePreviewMode()
@@ -82,7 +85,7 @@ void GraphicReader::DisablePreviewMode()
 void GraphicReader::SetPreviewSize( const Size& rSize )
 {
     if( !mpReaderData )
-        mpReaderData = new ReaderData;
+        mpReaderData.reset( new ReaderData );
     mpReaderData->maPreviewSize = rSize;
 }
 
diff --git a/vcl/source/gdi/impvect.cxx b/vcl/source/gdi/impvect.cxx
index 8891838..6a88538 100644
--- a/vcl/source/gdi/impvect.cxx
+++ b/vcl/source/gdi/impvect.cxx
@@ -268,7 +268,8 @@ private:
     Point           maStartPt;
     sal_uLong       mnArraySize;
     sal_uLong       mnCount;
-    sal_uInt8*      mpCodes;
+    std::unique_ptr<sal_uInt8[]>
+                    mpCodes;
 
     void            ImplGetSpace();
 
@@ -293,12 +294,11 @@ ImplChain::ImplChain() :
     mnArraySize ( 1024UL ),
     mnCount     ( 0UL )
 {
-    mpCodes = new sal_uInt8[ mnArraySize ];
+    mpCodes.reset( new sal_uInt8[ mnArraySize ] );
 }
 
 ImplChain::~ImplChain()
 {
-    delete[] mpCodes;
 }
 
 void ImplChain::ImplGetSpace()
@@ -308,9 +308,8 @@ void ImplChain::ImplGetSpace()
 
     mnArraySize = mnArraySize << 1UL;
     pNewCodes = new sal_uInt8[ mnArraySize ];
-    memcpy( pNewCodes, mpCodes, nOldArraySize );
-    delete[] mpCodes;
-    mpCodes = pNewCodes;
+    memcpy( pNewCodes, mpCodes.get(), nOldArraySize );
+    mpCodes.reset( pNewCodes );
 }
 
 void ImplChain::ImplBeginAdd( const Point& rStartPt )
diff --git a/vcl/source/gdi/metaact.cxx b/vcl/source/gdi/metaact.cxx
index 047a207..15de163 100644
--- a/vcl/source/gdi/metaact.cxx
+++ b/vcl/source/gdi/metaact.cxx
@@ -1092,13 +1092,9 @@ MetaTextArrayAction::MetaTextArrayAction( const MetaTextArrayAction& rAction ) :
 {
     if( rAction.mpDXAry )
     {
-        const sal_Int32 nAryLen = mnLen;
-
-        mpDXAry = new long[ nAryLen ];
-        memcpy( mpDXAry, rAction.mpDXAry, nAryLen * sizeof( long ) );
+        mpDXAry.reset( new long[ mnLen ] );
+        memcpy( mpDXAry.get(), rAction.mpDXAry.get(), mnLen * sizeof( long ) );
     }
-    else
-        mpDXAry = nullptr;
 }
 
 MetaTextArrayAction::MetaTextArrayAction( const Point& rStartPt,
@@ -1116,21 +1112,18 @@ MetaTextArrayAction::MetaTextArrayAction( const Point& rStartPt,
 
     if( nAryLen )
     {
-        mpDXAry = new long[ nAryLen ];
-        memcpy( mpDXAry, pDXAry, nAryLen * sizeof(long) );
+        mpDXAry.reset( new long[ nAryLen ] );
+        memcpy( mpDXAry.get(), pDXAry, nAryLen * sizeof(long) );
     }
-    else
-        mpDXAry = nullptr;
 }
 
 MetaTextArrayAction::~MetaTextArrayAction()
 {
-    delete[] mpDXAry;
 }
 
 void MetaTextArrayAction::Execute( OutputDevice* pOut )
 {
-    pOut->DrawTextArray( maStartPt, maStr, mpDXAry, mnIndex, mnLen );
+    pOut->DrawTextArray( maStartPt, maStr, mpDXAry.get(), mnIndex, mnLen );
 }
 
 MetaAction* MetaTextArrayAction::Clone()
@@ -1176,7 +1169,7 @@ void MetaTextArrayAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
 
 void MetaTextArrayAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
 {
-    delete[] mpDXAry;
+    mpDXAry.reset();
 
     VersionCompat aCompat(rIStm, StreamMode::READ);
     ReadPair( rIStm, maStartPt );
@@ -1202,7 +1195,7 @@ void MetaTextArrayAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
         // #i9762#, #106172# Ensure that DX array is at least mnLen entries long
         if ( mnLen >= nAryLen )
         {
-            mpDXAry = new (std::nothrow)long[ mnLen ];
+            mpDXAry.reset( new (std::nothrow)long[ mnLen ] );
             if ( mpDXAry )
             {
                 sal_Int32 i;
@@ -1233,8 +1226,7 @@ void MetaTextArrayAction::Read( SvStream& rIStm, ImplMetaReadData* pData )
         if ( mnIndex + mnLen > maStr.getLength() )
         {
             mnIndex = 0;
-            delete[] mpDXAry;
-            mpDXAry = nullptr;
+            mpDXAry.reset();
         }
     }
 }
diff --git a/vcl/source/gdi/oldprintadaptor.cxx b/vcl/source/gdi/oldprintadaptor.cxx
index 1f354fe..93bc795 100644
--- a/vcl/source/gdi/oldprintadaptor.cxx
+++ b/vcl/source/gdi/oldprintadaptor.cxx
@@ -52,7 +52,6 @@ OldStylePrintAdaptor::OldStylePrintAdaptor( const VclPtr< Printer >& i_xPrinter
 
 OldStylePrintAdaptor::~OldStylePrintAdaptor()
 {
-    delete mpData;
 }
 
 void OldStylePrintAdaptor::StartPage()
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index d1987dc..e79752a 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -2322,8 +2322,7 @@ void PDFWriterImpl::endPage()
             if( jpeg->m_pStream )
             {
                 writeJPG( *jpeg );
-                delete jpeg->m_pStream;
-                jpeg->m_pStream = nullptr;
+                jpeg->m_pStream.reset();
                 jpeg->m_aMask = Bitmap();
             }
         }
@@ -11223,11 +11222,11 @@ void PDFWriterImpl::drawJPGBitmap( SvStream& rDCTData, bool bIsTrueColor, const
         ;
     if( it == m_aJPGs.end() )
     {
-        m_aJPGs.push_front( JPGEmit() );
+        m_aJPGs.emplace( m_aJPGs.begin() );
         JPGEmit& rEmit = m_aJPGs.front();
         rEmit.m_nObject     = createObject();
         rEmit.m_aID         = aID;
-        rEmit.m_pStream     = pStream;
+        rEmit.m_pStream.reset( pStream );
         rEmit.m_bTrueColor  = bIsTrueColor;
         if( !! rMask && rMask.GetSizePixel() == rSizePixel )
             rEmit.m_aMask   = rMask;
@@ -13188,4 +13187,12 @@ void PDFWriterImpl::MARK( const char* pString )
         emitComment( pString );
 }
 
+PDFWriterImpl::JPGEmit::JPGEmit(PDFWriterImpl::JPGEmit&& rOther)
+{
+    m_aID = rOther.m_aID;
+    m_pStream = std::move(rOther.m_pStream);
+    m_aMask = std::move(rOther.m_aMask);
+    m_nObject = rOther.m_nObject;
+    m_bTrueColor = rOther.m_bTrueColor;
+}
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx
index e6c2855..979571f 100644
--- a/vcl/source/gdi/pdfwriter_impl.hxx
+++ b/vcl/source/gdi/pdfwriter_impl.hxx
@@ -223,7 +223,8 @@ public:
     struct JPGEmit
     {
         BitmapID            m_aID;
-        SvMemoryStream*     m_pStream;
+        std::unique_ptr<SvMemoryStream>
+                            m_pStream;
         Bitmap              m_aMask;
         sal_Int32           m_nObject;
         bool                m_bTrueColor;
@@ -234,7 +235,8 @@ public:
             , m_bTrueColor(false)
         {
         }
-        ~JPGEmit() { delete m_pStream; }
+        JPGEmit(const JPGEmit&) = delete; // to keep MSVC2013 happy
+        JPGEmit(JPGEmit&&); // to keep MSVC2013 happy
     };
 
     struct GradientEmit
diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx
index 196b908..9417bd1 100644
--- a/vcl/source/gdi/print3.cxx
+++ b/vcl/source/gdi/print3.cxx
@@ -757,7 +757,6 @@ bool Printer::StartJob( const OUString& i_rJobName, std::shared_ptr<vcl::Printer
 
 PrinterController::~PrinterController()
 {
-    delete mpImplData;
 }
 
 css::view::PrintableState PrinterController::getJobState() const
diff --git a/vcl/source/window/commandevent.cxx b/vcl/source/window/commandevent.cxx
index 6a1f140..bb00c31 100644
--- a/vcl/source/window/commandevent.cxx
+++ b/vcl/source/window/commandevent.cxx
@@ -28,12 +28,8 @@ CommandExtTextInputData::CommandExtTextInputData( const OUString& rText,
 {
     if ( pTextAttr && !maText.isEmpty() )
     {
-        mpTextAttr = new ExtTextInputAttr[maText.getLength()];
-        memcpy( mpTextAttr, pTextAttr, maText.getLength()*sizeof(ExtTextInputAttr) );
-    }
-    else
-    {
-        mpTextAttr = nullptr;
+        mpTextAttr.reset( new ExtTextInputAttr[maText.getLength()] );
+        memcpy( mpTextAttr.get(), pTextAttr, maText.getLength()*sizeof(ExtTextInputAttr) );
     }
 
     mnCursorPos     = nCursorPos;
@@ -46,12 +42,8 @@ CommandExtTextInputData::CommandExtTextInputData( const CommandExtTextInputData&
 {
     if ( rData.mpTextAttr && !maText.isEmpty() )
     {
-        mpTextAttr = new ExtTextInputAttr[maText.getLength()];
-        memcpy( mpTextAttr, rData.mpTextAttr, maText.getLength()*sizeof(ExtTextInputAttr) );
-    }
-    else
-    {
-        mpTextAttr = nullptr;
+        mpTextAttr.reset( new ExtTextInputAttr[maText.getLength()] );
+        memcpy( mpTextAttr.get(), rData.mpTextAttr.get(), maText.getLength()*sizeof(ExtTextInputAttr) );
     }
 
     mnCursorPos     = rData.mnCursorPos;
@@ -61,7 +53,6 @@ CommandExtTextInputData::CommandExtTextInputData( const CommandExtTextInputData&
 
 CommandExtTextInputData::~CommandExtTextInputData()
 {
-    delete [] mpTextAttr;
 }
 
 CommandInputContextData::CommandInputContextData( LanguageType eLang )
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index 1b78902..4e0fd97 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1202,7 +1202,6 @@ VclBuilderContainer::VclBuilderContainer()
 
 VclBuilderContainer::~VclBuilderContainer()
 {
-    delete m_pUIBuilder;
 }
 
 ModelessDialog::ModelessDialog(vcl::Window* pParent, const OUString& rID, const OUString& rUIXMLDescription, InitFlag eFlag)
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index a36b735..4c854c0 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -374,7 +374,7 @@ void DockingWindow::loadUI(vcl::Window* pParent, const OString& rID, const OUStr
 {
     mbIsDefferedInit = true;
     mpDialogParent = pParent; //should be unset in doDeferredInit
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame);
+    m_pUIBuilder.reset( new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame) );
 }
 
 DockingWindow::DockingWindow(vcl::Window* pParent, const OString& rID,
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
index cdee3a4..d0df38d 100644
--- a/vcl/source/window/printdlg.cxx
+++ b/vcl/source/window/printdlg.cxx
@@ -569,9 +569,9 @@ PrintDialog::PrintDialog( vcl::Window* i_pParent, const std::shared_ptr<PrinterC
     : ModalDialog(i_pParent, "PrintDialog", "vcl/ui/printdialog.ui")
     , mpCustomOptionsUIBuilder(nullptr)
     , maPController( i_rController )
-    , maNUpPage(m_pUIBuilder)
-    , maJobPage(m_pUIBuilder)
-    , maOptionsPage(m_pUIBuilder)
+    , maNUpPage(m_pUIBuilder.get())
+    , maJobPage(m_pUIBuilder.get())
+    , maOptionsPage(m_pUIBuilder.get())
     , maNoPageStr( VclResId( SV_PRINT_NOPAGES ).toString() )
     , mnCurPage( 0 )
     , mnCachedPages( 0 )
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 21cdeb3..93ebb94 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -51,7 +51,8 @@ public:
     ImplData();
     ~ImplData();
 
-    TaskPaneList*   mpTaskPaneList;
+    std::unique_ptr<TaskPaneList>
+                    mpTaskPaneList;
     Size            maMaxOutSize;
     OUString        maRepresentedURL;
     Link<SystemWindow&,void> maCloseHdl;
@@ -65,7 +66,6 @@ SystemWindow::ImplData::ImplData()
 
 SystemWindow::ImplData::~ImplData()
 {
-    delete mpTaskPaneList;
 }
 
 SystemWindow::SystemWindow(WindowType nType)
@@ -94,7 +94,7 @@ void SystemWindow::loadUI(vcl::Window* pParent, const OString& rID, const OUStri
 {
     mbIsDefferedInit = true;
     mpDialogParent = pParent; //should be unset in doDeferredInit
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame);
+    m_pUIBuilder.reset( new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame) );
 }
 
 SystemWindow::~SystemWindow()
@@ -219,12 +219,12 @@ bool SystemWindow::PreNotify( NotifyEvent& rNEvt )
         }
         else
         {
-            TaskPaneList *pTList = mpImplData->mpTaskPaneList;
+            TaskPaneList *pTList = mpImplData->mpTaskPaneList.get();
             if( !pTList && ( GetType() == WINDOW_FLOATINGWINDOW ) )
             {
                 vcl::Window* pWin = ImplGetFrameWindow()->ImplGetWindow();
                 if( pWin && pWin->IsSystemWindow() )
-                    pTList = static_cast<SystemWindow*>(pWin)->mpImplData->mpTaskPaneList;
+                    pTList = static_cast<SystemWindow*>(pWin)->mpImplData->mpTaskPaneList.get();
             }
             if( !pTList )
             {
@@ -237,7 +237,7 @@ bool SystemWindow::PreNotify( NotifyEvent& rNEvt )
                     if( pWin && pWin->IsSystemWindow() )
                         pSysWin = static_cast<SystemWindow*>(pWin);
                 }
-                pTList = pSysWin->mpImplData->mpTaskPaneList;
+                pTList = pSysWin->mpImplData->mpTaskPaneList.get();
             }
             if( pTList && pTList->HandleKeyEvent( *rNEvt.GetKeyEvent() ) )
                 return true;
@@ -251,10 +251,10 @@ TaskPaneList* SystemWindow::GetTaskPaneList()
     if( !mpImplData )
         return nullptr;
     if( mpImplData->mpTaskPaneList )
-        return mpImplData->mpTaskPaneList ;
+        return mpImplData->mpTaskPaneList.get();
     else
     {
-        mpImplData->mpTaskPaneList = new TaskPaneList();
+        mpImplData->mpTaskPaneList.reset( new TaskPaneList );
         MenuBar* pMBar = mpMenuBar;
         if ( !pMBar && ( GetType() == WINDOW_FLOATINGWINDOW ) )
         {
@@ -264,7 +264,7 @@ TaskPaneList* SystemWindow::GetTaskPaneList()
         }
         if( pMBar )
             mpImplData->mpTaskPaneList->AddWindow( pMBar->ImplGetWindow() );
-        return mpImplData->mpTaskPaneList;
+        return mpImplData->mpTaskPaneList.get();
     }
 }
 
diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx
index 0576f3a..cda47e0 100644
--- a/vcl/source/window/tabpage.cxx
+++ b/vcl/source/window/tabpage.cxx
@@ -81,7 +81,7 @@ TabPage::TabPage(vcl::Window *pParent, const OString& rID, const OUString& rUIXM
     , IContext()
 {
     ImplInit(pParent, 0);
-    m_pUIBuilder = new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID);
+    m_pUIBuilder.reset( new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID) );
     set_hexpand(true);
     set_vexpand(true);
     set_expand(true);
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index b1238d2..49ccf48 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -93,7 +93,8 @@ typedef ::std::vector< VclPtr<ToolBox> > ImplTBList;
 class ImplTBDragMgr
 {
 private:
-    ImplTBList*     mpBoxList;
+    std::unique_ptr<ImplTBList>
+                    mpBoxList;
     VclPtr<ToolBox> mpDragBox;
     Point           maMouseOff;
     Rectangle       maRect;
@@ -1144,7 +1145,6 @@ ImplTBDragMgr::ImplTBDragMgr()
 
 ImplTBDragMgr::~ImplTBDragMgr()
 {
-    delete mpBoxList;
 }
 
 ToolBox* ImplTBDragMgr::FindToolBox( const Rectangle& rRect )
diff --git a/vcl/unx/generic/app/geninst.cxx b/vcl/unx/generic/app/geninst.cxx
index daf54b0..29b4c75 100644
--- a/vcl/unx/generic/app/geninst.cxx
+++ b/vcl/unx/generic/app/geninst.cxx
@@ -85,12 +85,12 @@ bool SalYieldMutex::tryToAcquire()
 
 comphelper::SolarMutex* SalGenericInstance::GetYieldMutex()
 {
-    return mpSalYieldMutex;
+    return mpSalYieldMutex.get();
 }
 
 sal_uLong SalGenericInstance::ReleaseYieldMutex()
 {
-    SalYieldMutex* pYieldMutex = mpSalYieldMutex;
+    SalYieldMutex* pYieldMutex = mpSalYieldMutex.get();
     if ( pYieldMutex->GetThreadId() ==
          osl::Thread::getCurrentIdentifier() )
     {
@@ -110,7 +110,7 @@ sal_uLong SalGenericInstance::ReleaseYieldMutex()
 
 void SalGenericInstance::AcquireYieldMutex( sal_uLong nCount )
 {
-    SalYieldMutex* pYieldMutex = mpSalYieldMutex;
+    SalYieldMutex* pYieldMutex = mpSalYieldMutex.get();
     while ( nCount )
     {
         pYieldMutex->acquire();
@@ -122,7 +122,7 @@ bool SalGenericInstance::CheckYieldMutex()
 {
     bool bRet = true;
 
-    SalYieldMutex* pYieldMutex = mpSalYieldMutex;
+    SalYieldMutex* pYieldMutex = mpSalYieldMutex.get();
     if ( pYieldMutex->GetThreadId() != osl::Thread::getCurrentIdentifier() )
     {
         SAL_WARN("vcl", "CheckYieldMutex: " << pYieldMutex->GetThreadId() << "!=" << osl::Thread::getCurrentIdentifier() );
@@ -134,7 +134,6 @@ bool SalGenericInstance::CheckYieldMutex()
 
 SalGenericInstance::~SalGenericInstance()
 {
-    delete mpSalYieldMutex;
 }
 
 OUString SalGenericInstance::getOSVersion()
diff --git a/vcl/unx/generic/printer/printerinfomanager.cxx b/vcl/unx/generic/printer/printerinfomanager.cxx
index 98014c7..23a28e8 100644
--- a/vcl/unx/generic/printer/printerinfomanager.cxx
+++ b/vcl/unx/generic/printer/printerinfomanager.cxx
@@ -112,7 +112,7 @@ PrinterInfoManager::PrinterInfoManager( Type eType ) :
     m_aSystemDefaultPaper( "A4" )
 {
     if( eType == Type::Default )
-        m_pQueueInfo = new SystemQueueInfo();
+        m_pQueueInfo.reset( new SystemQueueInfo );
 
     m_aSystemDefaultPaper = OStringToOUString(
         PaperInfo::toPSName(PaperInfo::getSystemDefaultPaper().getPaper()),
@@ -121,7 +121,6 @@ PrinterInfoManager::PrinterInfoManager( Type eType ) :
 
 PrinterInfoManager::~PrinterInfoManager()
 {
-    delete m_pQueueInfo;
     #if OSL_DEBUG_LEVEL > 1
     fprintf( stderr, "PrinterInfoManager: destroyed Manager of type %d\n", getType() );
     #endif
@@ -504,8 +503,7 @@ void PrinterInfoManager::initialize()
     {
         m_aSystemPrintCommand = m_pQueueInfo->getCommand();
         m_pQueueInfo->getSystemQueues( m_aSystemPrintQueues );
-        delete m_pQueueInfo;
-        m_pQueueInfo = nullptr;
+        m_pQueueInfo.reset();
     }
     for( ::std::list< SystemPrintQueue >::iterator it = m_aSystemPrintQueues.begin(); it != m_aSystemPrintQueues.end(); ++it )
     {


More information about the Libreoffice-commits mailing list