new loplugin: useuniqueptr: vcl

Change-Id: Idcbc8655108ff57c06c33bbcabd652387bf3c4ec
Reviewed-on: https://gerrit.libreoffice.org/32948
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@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..792bd9ab 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..80fcd2a5 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 74451ec9..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..ea4f5c8f 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 dec9f36b..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..979571f6 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 )
    {