[Libreoffice-commits] core.git: 6 commits - compilerplugins/clang include/package include/vcl package/inc package/source vcl/inc vcl/source

Noel Grandin noel.grandin at collabora.co.uk
Mon Apr 23 06:14:50 UTC 2018


 compilerplugins/clang/useuniqueptr.cxx           |    3 
 include/package/Deflater.hxx                     |    3 
 include/package/Inflater.hxx                     |    3 
 include/vcl/popupmenuwindow.hxx                  |    3 
 include/vcl/status.hxx                           |    5 
 package/inc/zipfileaccess.hxx                    |    2 
 package/source/xstor/switchpersistencestream.cxx |   18 +--
 package/source/xstor/switchpersistencestream.hxx |    2 
 package/source/zipapi/Deflater.cxx               |   27 ++---
 package/source/zipapi/Inflater.cxx               |   23 ++--
 package/source/zippackage/zipfileaccess.cxx      |    5 
 vcl/inc/scrwnd.hxx                               |    2 
 vcl/source/window/popupmenuwindow.cxx            |    2 
 vcl/source/window/scrwnd.cxx                     |    6 -
 vcl/source/window/status.cxx                     |  120 ++++++++++-------------
 15 files changed, 104 insertions(+), 120 deletions(-)

New commits:
commit 3a35870a72cf6a8e481c70f972b7258b2dd764a9
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Apr 16 12:30:07 2018 +0200

    loplugin:useuniqueptr in StatusBar
    
    and rename mpItemList->mvItemList
    
    Change-Id: Ib11dce91543fc4a6623795f3ff2820db5a3d7120
    Reviewed-on: https://gerrit.libreoffice.org/53229
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/vcl/status.hxx b/include/vcl/status.hxx
index 8ce894a87630..0ead49f7ddad 100644
--- a/include/vcl/status.hxx
+++ b/include/vcl/status.hxx
@@ -24,6 +24,7 @@
 #include <vcl/dllapi.h>
 #include <vcl/window.hxx>
 #include <o3tl/typed_flags_set.hxx>
+#include <memory>
 #include <vector>
 
 struct ImplStatusItem;
@@ -59,8 +60,8 @@ class VCL_DLLPUBLIC StatusBar : public vcl::Window
 {
     class   ImplData;
 private:
-    std::vector<ImplStatusItem *> mpItemList;
-    ImplData*           mpImplData;
+    std::vector<std::unique_ptr<ImplStatusItem>> mvItemList;
+    std::unique_ptr<ImplData> mpImplData;
     OUString            maPrgsTxt;
     Point               maPrgsTxtPos;
     tools::Rectangle           maPrgsFrameRect;
diff --git a/vcl/source/window/status.cxx b/vcl/source/window/status.cxx
index 5acbb2457012..357dc6166be4 100644
--- a/vcl/source/window/status.cxx
+++ b/vcl/source/window/status.cxx
@@ -109,7 +109,7 @@ bool StatusBar::ImplIsItemUpdate()
 
 void StatusBar::ImplInit( vcl::Window* pParent, WinBits nStyle )
 {
-    mpImplData = new ImplData;
+    mpImplData.reset(new ImplData);
 
     // default: RightAlign
     if ( !(nStyle & (WB_LEFT | WB_RIGHT)) )
@@ -150,14 +150,11 @@ StatusBar::~StatusBar()
 void StatusBar::dispose()
 {
     // delete all items
-    for (ImplStatusItem* i : mpItemList) {
-        delete i;
-    }
-    mpItemList.clear();
+    mvItemList.clear();
 
     // delete VirtualDevice
     mpImplData->mpVirDev.disposeAndClear();
-    delete mpImplData;
+    mpImplData.reset();
     Window::dispose();
 }
 
@@ -217,7 +214,6 @@ void StatusBar::ImplInitSettings()
 
 void StatusBar::ImplFormat()
 {
-    ImplStatusItem* pItem;
     long            nExtraWidth;
     long            nExtraWidth2;
     long            nX;
@@ -226,8 +222,7 @@ void StatusBar::ImplFormat()
     // sum up widths
     mnItemsWidth = STATUSBAR_OFFSET_X;
     long nOffset = 0;
-    for (ImplStatusItem* i : mpItemList) {
-        pItem = i;
+    for (auto & pItem : mvItemList) {
         if ( pItem->mbVisible )
         {
             if ( pItem->mnBits & StatusBarItemBits::AutoSize ) {
@@ -268,8 +263,7 @@ void StatusBar::ImplFormat()
             nX += ImplGetSVData()->maNWFData.mnStatusBarLowerRightOffset;
     }
 
-    for (ImplStatusItem* i : mpItemList) {
-        pItem = i;
+    for (auto & pItem : mvItemList) {
         if ( pItem->mbVisible ) {
             if ( pItem->mnBits & StatusBarItemBits::AutoSize ) {
                 pItem->mnExtraWidth = nExtraWidth;
@@ -292,8 +286,7 @@ void StatusBar::ImplFormat()
 tools::Rectangle StatusBar::ImplGetItemRectPos( sal_uInt16 nPos ) const
 {
     tools::Rectangle       aRect;
-    ImplStatusItem* pItem;
-    pItem = ( nPos < mpItemList.size() ) ? mpItemList[ nPos ] : nullptr;
+    ImplStatusItem* pItem = ( nPos < mvItemList.size() ) ? mvItemList[ nPos ].get() : nullptr;
     if ( pItem )
     {
         if ( pItem->mbVisible )
@@ -310,14 +303,11 @@ tools::Rectangle StatusBar::ImplGetItemRectPos( sal_uInt16 nPos ) const
 
 sal_uInt16 StatusBar::ImplGetFirstVisiblePos() const
 {
-    for( size_t nPos = 0; nPos < mpItemList.size(); nPos++ )
+    for( size_t nPos = 0; nPos < mvItemList.size(); nPos++ )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
-        if ( pItem )
-        {
-            if ( pItem->mbVisible )
-                return sal_uInt16(nPos);
-        }
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
+        if ( pItem->mbVisible )
+            return sal_uInt16(nPos);
     }
 
     return SAL_MAX_UINT16;
@@ -355,7 +345,7 @@ void StatusBar::ImplDrawItem(vcl::RenderContext& rRenderContext, bool bOffScreen
         return;
 
     // compute output region
-    ImplStatusItem* pItem = mpItemList[nPos];
+    ImplStatusItem* pItem = mvItemList[nPos].get();
     long nW = mpImplData->mnItemBorderWidth + 1;
     tools::Rectangle aTextRect(aRect.Left() + nW, aRect.Top() + nW,
                         aRect.Right() - nW, aRect.Bottom() - nW);
@@ -657,9 +647,9 @@ void StatusBar::MouseButtonDown( const MouseEvent& rMEvt )
             Point  aMousePos = rMEvt.GetPosPixel();
 
             // search for clicked item
-            for ( size_t i = 0; i < mpItemList.size(); ++i )
+            for ( size_t i = 0; i < mvItemList.size(); ++i )
             {
-                ImplStatusItem* pItem = mpItemList[ i ];
+                ImplStatusItem* pItem = mvItemList[ i ].get();
                 // check item for being clicked
                 if ( ImplGetItemRectPos( sal_uInt16(i) ).IsInside( aMousePos ) )
                 {
@@ -689,7 +679,7 @@ void StatusBar::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle
     if (mbFormat)
         ImplFormat();
 
-    sal_uInt16 nItemCount = sal_uInt16( mpItemList.size() );
+    sal_uInt16 nItemCount = sal_uInt16( mvItemList.size() );
 
     if (mbProgressMode)
     {
@@ -851,7 +841,7 @@ void StatusBar::StateChanged( StateChangedType nType )
     }
 
     //invalidate layout cache
-    for (ImplStatusItem* pItem : mpItemList)
+    for (auto & pItem : mvItemList)
     {
         pItem->mxLayoutCache.reset();
     }
@@ -873,7 +863,7 @@ void StatusBar::DataChanged( const DataChangedEvent& rDCEvt )
         mbFormat = true;
         ImplInitSettings();
         long nFudge = GetTextHeight() / 4;
-        for (ImplStatusItem* pItem : mpItemList)
+        for (auto & pItem : mvItemList)
         {
             long nWidth = GetTextWidth( pItem->maText ) + nFudge;
             if( nWidth > pItem->mnWidth + STATUSBAR_OFFSET )
@@ -926,7 +916,7 @@ void StatusBar::InsertItem( sal_uInt16 nItemId, sal_uLong nWidth,
         nWidth *= GetDPIScaleFactor();
     }
     long nFudge = GetTextHeight()/4;
-    ImplStatusItem* pItem   = new ImplStatusItem;
+    std::unique_ptr<ImplStatusItem> pItem(new ImplStatusItem);
     pItem->mnId             = nItemId;
     pItem->mnBits           = nBits;
     pItem->mnWidth          = static_cast<long>(nWidth)+nFudge+STATUSBAR_OFFSET;
@@ -935,10 +925,10 @@ void StatusBar::InsertItem( sal_uInt16 nItemId, sal_uLong nWidth,
     pItem->mbVisible        = true;
 
     // add item to list
-    if ( nPos < mpItemList.size() ) {
-        mpItemList.insert( mpItemList.begin() + nPos, pItem );
+    if ( nPos < mvItemList.size() ) {
+        mvItemList.insert( mvItemList.begin() + nPos, std::move(pItem) );
     } else {
-        mpItemList.push_back( pItem );
+        mvItemList.push_back( std::move(pItem) );
     }
 
     mbFormat = true;
@@ -953,8 +943,7 @@ void StatusBar::RemoveItem( sal_uInt16 nItemId )
     sal_uInt16 nPos = GetItemPos( nItemId );
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        delete mpItemList[ nPos ];
-        mpItemList.erase( mpItemList.begin() + nPos );
+        mvItemList.erase( mvItemList.begin() + nPos );
 
         mbFormat = true;
         if ( ImplIsItemUpdate() )
@@ -970,7 +959,7 @@ void StatusBar::ShowItem( sal_uInt16 nItemId )
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
         if ( !pItem->mbVisible )
         {
             pItem->mbVisible = true;
@@ -990,7 +979,7 @@ void StatusBar::HideItem( sal_uInt16 nItemId )
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
         if ( pItem->mbVisible )
         {
             pItem->mbVisible = false;
@@ -1009,7 +998,7 @@ bool StatusBar::IsItemVisible( sal_uInt16 nItemId ) const
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        return mpItemList[ nPos ]->mbVisible;
+        return mvItemList[ nPos ]->mbVisible;
     else
         return false;
 }
@@ -1017,10 +1006,7 @@ bool StatusBar::IsItemVisible( sal_uInt16 nItemId ) const
 void StatusBar::Clear()
 {
     // delete all items
-    for (ImplStatusItem* i : mpItemList) {
-        delete i;
-    }
-    mpItemList.clear();
+    mvItemList.clear();
 
     mbFormat = true;
     if ( ImplIsItemUpdate() )
@@ -1031,20 +1017,20 @@ void StatusBar::Clear()
 
 sal_uInt16 StatusBar::GetItemCount() const
 {
-    return static_cast<sal_uInt16>(mpItemList.size());
+    return static_cast<sal_uInt16>(mvItemList.size());
 }
 
 sal_uInt16 StatusBar::GetItemId( sal_uInt16 nPos ) const
 {
-    if ( nPos < mpItemList.size() )
-        return mpItemList[ nPos ]->mnId;
+    if ( nPos < mvItemList.size() )
+        return mvItemList[ nPos ]->mnId;
     return 0;
 }
 
 sal_uInt16 StatusBar::GetItemPos( sal_uInt16 nItemId ) const
 {
-    for ( size_t i = 0, n = mpItemList.size(); i < n; ++i ) {
-        if ( mpItemList[ i ]->mnId == nItemId ) {
+    for ( size_t i = 0, n = mvItemList.size(); i < n; ++i ) {
+        if ( mvItemList[ i ]->mnId == nItemId ) {
             return sal_uInt16( i );
         }
     }
@@ -1063,7 +1049,7 @@ sal_uInt16 StatusBar::GetItemId( const Point& rPos ) const
             // get rectangle
             tools::Rectangle aRect = ImplGetItemRectPos( nPos );
             if ( aRect.IsInside( rPos ) )
-                return mpItemList[ nPos ]->mnId;
+                return mvItemList[ nPos ]->mnId;
         }
     }
 
@@ -1101,7 +1087,7 @@ Point StatusBar::GetItemTextPos( sal_uInt16 nItemId ) const
         if ( nPos != STATUSBAR_ITEM_NOTFOUND )
         {
             // get rectangle
-            ImplStatusItem* pItem = mpItemList[ nPos ];
+            ImplStatusItem* pItem = mvItemList[ nPos ].get();
             tools::Rectangle aRect = ImplGetItemRectPos( nPos );
             long nW = mpImplData->mnItemBorderWidth + 1;
             tools::Rectangle           aTextRect( aRect.Left()+nW, aRect.Top()+nW,
@@ -1126,7 +1112,7 @@ sal_uLong StatusBar::GetItemWidth( sal_uInt16 nItemId ) const
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        return mpItemList[ nPos ]->mnWidth;
+        return mvItemList[ nPos ]->mnWidth;
 
     return 0;
 }
@@ -1136,7 +1122,7 @@ StatusBarItemBits StatusBar::GetItemBits( sal_uInt16 nItemId ) const
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        return mpItemList[ nPos ]->mnBits;
+        return mvItemList[ nPos ]->mnBits;
 
     return StatusBarItemBits::NONE;
 }
@@ -1146,7 +1132,7 @@ long StatusBar::GetItemOffset( sal_uInt16 nItemId ) const
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        return mpItemList[ nPos ]->mnOffset;
+        return mvItemList[ nPos ]->mnOffset;
 
     return 0;
 }
@@ -1157,7 +1143,7 @@ void StatusBar::SetItemText( sal_uInt16 nItemId, const OUString& rText )
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
 
         if ( pItem->maText != rText )
         {
@@ -1194,7 +1180,7 @@ const OUString& StatusBar::GetItemText( sal_uInt16 nItemId ) const
 
     assert( nPos != STATUSBAR_ITEM_NOTFOUND );
 
-    return mpItemList[ nPos ]->maText;
+    return mvItemList[ nPos ]->maText;
 }
 
 void StatusBar::SetItemCommand( sal_uInt16 nItemId, const OUString& rCommand )
@@ -1203,7 +1189,7 @@ void StatusBar::SetItemCommand( sal_uInt16 nItemId, const OUString& rCommand )
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
 
         if ( pItem->maCommand != rCommand )
             pItem->maCommand = rCommand;
@@ -1215,7 +1201,7 @@ const OUString StatusBar::GetItemCommand( sal_uInt16 nItemId )
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        return mpItemList[ nPos ]->maCommand;
+        return mvItemList[ nPos ]->maCommand;
 
     return OUString();
 }
@@ -1226,7 +1212,7 @@ void StatusBar::SetItemData( sal_uInt16 nItemId, void* pNewData )
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
         // invalidate cache
         pItem->mxLayoutCache.reset();
         pItem->mpUserData = pNewData;
@@ -1247,7 +1233,7 @@ void* StatusBar::GetItemData( sal_uInt16 nItemId ) const
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        return mpItemList[ nPos ]->mpUserData;
+        return mvItemList[ nPos ]->mpUserData;
 
     return nullptr;
 }
@@ -1261,8 +1247,8 @@ void StatusBar::RedrawItem(sal_uInt16 nItemId)
     if ( nPos == STATUSBAR_ITEM_NOTFOUND )
         return;
 
-    ImplStatusItem* pItem = mpItemList[ nPos ];
-    if (pItem && (pItem->mnBits & StatusBarItemBits::UserDraw) &&
+    ImplStatusItem* pItem = mvItemList[ nPos ].get();
+    if ((pItem->mnBits & StatusBarItemBits::UserDraw) &&
         pItem->mbVisible && ImplIsItemUpdate())
     {
         tools::Rectangle aRect = ImplGetItemRectPos(nPos);
@@ -1276,7 +1262,7 @@ void StatusBar::SetHelpText( sal_uInt16 nItemId, const OUString& rText )
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        mpItemList[ nPos ]->maHelpText = rText;
+        mvItemList[ nPos ]->maHelpText = rText;
 }
 
 const OUString& StatusBar::GetHelpText( sal_uInt16 nItemId ) const
@@ -1285,7 +1271,7 @@ const OUString& StatusBar::GetHelpText( sal_uInt16 nItemId ) const
 
     assert ( nPos != STATUSBAR_ITEM_NOTFOUND );
 
-    ImplStatusItem* pItem = mpItemList[ nPos ];
+    ImplStatusItem* pItem = mvItemList[ nPos ].get();
     if ( pItem->maHelpText.isEmpty() && ( !pItem->maHelpId.isEmpty() || !pItem->maCommand.isEmpty() ))
     {
         Help* pHelp = Application::GetHelp();
@@ -1306,7 +1292,7 @@ void StatusBar::SetQuickHelpText( sal_uInt16 nItemId, const OUString& rText )
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        mpItemList[ nPos ]->maQuickHelpText = rText;
+        mvItemList[ nPos ]->maQuickHelpText = rText;
 }
 
 const OUString& StatusBar::GetQuickHelpText( sal_uInt16 nItemId ) const
@@ -1315,7 +1301,7 @@ const OUString& StatusBar::GetQuickHelpText( sal_uInt16 nItemId ) const
 
     assert ( nPos != STATUSBAR_ITEM_NOTFOUND );
 
-    ImplStatusItem* pItem = mpItemList[ nPos ];
+    ImplStatusItem* pItem = mvItemList[ nPos ].get();
     return pItem->maQuickHelpText;
 }
 
@@ -1324,7 +1310,7 @@ void StatusBar::SetHelpId( sal_uInt16 nItemId, const OString& rHelpId )
     sal_uInt16 nPos = GetItemPos( nItemId );
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
-        mpItemList[ nPos ]->maHelpId = rHelpId;
+        mvItemList[ nPos ]->maHelpId = rHelpId;
 }
 
 OString StatusBar::GetHelpId( sal_uInt16 nItemId ) const
@@ -1334,7 +1320,7 @@ OString StatusBar::GetHelpId( sal_uInt16 nItemId ) const
     OString aRet;
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
         if ( !pItem->maHelpId.isEmpty() )
             aRet = pItem->maHelpId;
         else
@@ -1427,14 +1413,14 @@ void StatusBar::SetText(const OUString& rText)
 Size StatusBar::CalcWindowSizePixel() const
 {
     size_t  i = 0;
-    size_t  nCount = mpItemList.size();
+    size_t  nCount = mvItemList.size();
     long    nOffset = 0;
     long    nCalcWidth = (STATUSBAR_OFFSET_X*2);
     long    nCalcHeight;
 
     while ( i < nCount )
     {
-        ImplStatusItem* pItem = mpItemList[ i ];
+        ImplStatusItem* pItem = mvItemList[ i ].get();
         nCalcWidth += pItem->mnWidth + nOffset;
         nOffset = pItem->mnOffset;
         i++;
@@ -1484,7 +1470,7 @@ void StatusBar::SetAccessibleName( sal_uInt16 nItemId, const OUString& rName )
 
     if ( nPos != STATUSBAR_ITEM_NOTFOUND )
     {
-        ImplStatusItem* pItem = mpItemList[ nPos ];
+        ImplStatusItem* pItem = mvItemList[ nPos ].get();
 
         if ( pItem->maAccessibleName != rName )
         {
@@ -1500,7 +1486,7 @@ const OUString& StatusBar::GetAccessibleName( sal_uInt16 nItemId ) const
 
     assert ( nPos != STATUSBAR_ITEM_NOTFOUND );
 
-    return mpItemList[ nPos ]->maAccessibleName;
+    return mvItemList[ nPos ]->maAccessibleName;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 3acdd48382476e7bf79512762a4ecb872a18cdb8
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Apr 16 12:23:53 2018 +0200

    loplugin:useuniqueptr in ImplWheelWindow
    
    Change-Id: I064ebced6e7840c4f9a179c312743385892e552a
    Reviewed-on: https://gerrit.libreoffice.org/53228
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/vcl/inc/scrwnd.hxx b/vcl/inc/scrwnd.hxx
index de6e1320b1e5..779f9f8937dd 100644
--- a/vcl/inc/scrwnd.hxx
+++ b/vcl/inc/scrwnd.hxx
@@ -46,7 +46,7 @@ private:
     std::vector<Image>  maImgList;
     Point               maLastMousePos;
     Point               maCenter;
-    Timer*              mpTimer;
+    std::unique_ptr<Timer> mpTimer;
     sal_uInt64          mnRepaintTime;
     sal_uInt64          mnTimeout;
     WheelMode           mnWheelMode;
diff --git a/vcl/source/window/scrwnd.cxx b/vcl/source/window/scrwnd.cxx
index 5650e8462074..0f4e932f87ff 100644
--- a/vcl/source/window/scrwnd.cxx
+++ b/vcl/source/window/scrwnd.cxx
@@ -71,7 +71,7 @@ ImplWheelWindow::ImplWheelWindow( vcl::Window* pParent ) :
         ImplSetWheelMode( WheelMode::V );
 
     // init timer
-    mpTimer = new Timer("WheelWindowTimer");
+    mpTimer.reset(new Timer("WheelWindowTimer"));
     mpTimer->SetInvokeHandler( LINK( this, ImplWheelWindow, ImplScrollHdl ) );
     mpTimer->SetTimeout( mnTimeout );
     mpTimer->Start();
@@ -87,9 +87,7 @@ ImplWheelWindow::~ImplWheelWindow()
 void ImplWheelWindow::dispose()
 {
     ImplStop();
-    delete mpTimer;
-    mpTimer = nullptr;
-
+    mpTimer.reset();
     FloatingWindow::dispose();
 }
 
commit 3148fdfe21a626307fc60fef1451b1c501686504
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Apr 16 12:22:26 2018 +0200

    loplugin:useuniqueptr in PopupMenuFloatingWindow
    
    Change-Id: If903f677db198978dcf455f06198437a26b6a311
    Reviewed-on: https://gerrit.libreoffice.org/53227
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/vcl/popupmenuwindow.hxx b/include/vcl/popupmenuwindow.hxx
index dcfcb9f84345..4d035b3b1bdf 100644
--- a/include/vcl/popupmenuwindow.hxx
+++ b/include/vcl/popupmenuwindow.hxx
@@ -21,12 +21,13 @@
 #define INCLUDED_VCL_POPUPMENUWINDOW_HXX
 
 #include <vcl/floatwin.hxx>
+#include <memory>
 
 class VCL_DLLPUBLIC PopupMenuFloatingWindow : public FloatingWindow
 {
 private:
     struct ImplData;
-    ImplData* mpImplData;
+    std::unique_ptr<ImplData> mpImplData;
 public:
     PopupMenuFloatingWindow( vcl::Window* pParent );
     virtual ~PopupMenuFloatingWindow() override;
diff --git a/vcl/source/window/popupmenuwindow.cxx b/vcl/source/window/popupmenuwindow.cxx
index d8cd337a1c91..f85298e63642 100644
--- a/vcl/source/window/popupmenuwindow.cxx
+++ b/vcl/source/window/popupmenuwindow.cxx
@@ -46,7 +46,7 @@ PopupMenuFloatingWindow::~PopupMenuFloatingWindow()
 
 void PopupMenuFloatingWindow::dispose()
 {
-    delete mpImplData;
+    mpImplData.reset();
     FloatingWindow::dispose();
 }
 
commit 7af3b9d7970d60ba09e0556ee232a8fa624383d4
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Apr 16 12:22:15 2018 +0200

    loplugin:useuniqueptr in OZipFileAccess
    
    Change-Id: Iaad8b364b1a244bd559e582a1622dd59b4756759
    Reviewed-on: https://gerrit.libreoffice.org/53226
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/package/inc/zipfileaccess.hxx b/package/inc/zipfileaccess.hxx
index 380e3428dd8b..901ae060e436 100644
--- a/package/inc/zipfileaccess.hxx
+++ b/package/inc/zipfileaccess.hxx
@@ -47,7 +47,7 @@ class OZipFileAccess : public ::cppu::WeakImplHelper<
     css::uno::Reference< css::uno::XComponentContext > m_xContext;
     css::uno::Reference< css::io::XInputStream > m_xContentStream;
     std::unique_ptr<ZipFile> m_pZipFile;
-    ::comphelper::OInterfaceContainerHelper2* m_pListenersContainer;
+    std::unique_ptr<::comphelper::OInterfaceContainerHelper2> m_pListenersContainer;
     bool m_bDisposed;
     bool m_bOwnContent;
 
diff --git a/package/source/zippackage/zipfileaccess.cxx b/package/source/zippackage/zipfileaccess.cxx
index 9bef00cafca6..eb5ad53f1ce7 100644
--- a/package/source/zippackage/zipfileaccess.cxx
+++ b/package/source/zippackage/zipfileaccess.cxx
@@ -413,8 +413,7 @@ void SAL_CALL OZipFileAccess::dispose()
     {
            lang::EventObject aSource( static_cast< ::cppu::OWeakObject* >(this) );
         m_pListenersContainer->disposeAndClear( aSource );
-        delete m_pListenersContainer;
-        m_pListenersContainer = nullptr;
+        m_pListenersContainer.reset();
     }
 
     m_pZipFile.reset();
@@ -436,7 +435,7 @@ void SAL_CALL OZipFileAccess::addEventListener( const uno::Reference< lang::XEve
         throw lang::DisposedException(THROW_WHERE );
 
     if ( !m_pListenersContainer )
-        m_pListenersContainer = new ::comphelper::OInterfaceContainerHelper2( m_aMutexHolder->GetMutex() );
+        m_pListenersContainer.reset( new ::comphelper::OInterfaceContainerHelper2( m_aMutexHolder->GetMutex() ) );
     m_pListenersContainer->addInterface( xListener );
 }
 
commit b603dad2dfb49a120084b2e4124b16bd18a3b6f1
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Apr 16 12:08:56 2018 +0200

    loplugin:useuniqueptr in SwitchablePersistenceStream
    
    Change-Id: I8f7d8296b98bc1743b993aac195859b2d2be4f7f
    Reviewed-on: https://gerrit.libreoffice.org/53225
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/package/source/xstor/switchpersistencestream.cxx b/package/source/xstor/switchpersistencestream.cxx
index 5d96d626d9d3..b85be26f7eb6 100644
--- a/package/source/xstor/switchpersistencestream.cxx
+++ b/package/source/xstor/switchpersistencestream.cxx
@@ -112,9 +112,9 @@ void SwitchablePersistenceStream::SwitchPersistenceTo( const uno::Reference< io:
 
     CloseAll_Impl();
 
-    m_pStreamData = new SPStreamData_Impl( false,
+    m_pStreamData.reset( new SPStreamData_Impl( false,
                                             xNewTruncate, xNewSeekable, xNewInStream, xNewOutStream,
-                                            bInOpen, bOutOpen );
+                                            bInOpen, bOutOpen ) );
 }
 
 void SwitchablePersistenceStream::SwitchPersistenceTo( const uno::Reference< io::XInputStream >& xInputStream )
@@ -145,9 +145,9 @@ void SwitchablePersistenceStream::SwitchPersistenceTo( const uno::Reference< io:
 
     CloseAll_Impl();
 
-    m_pStreamData = new SPStreamData_Impl( true,
+    m_pStreamData.reset( new SPStreamData_Impl( true,
                                             xNewTruncate, xNewSeekable, xInputStream, xNewOutStream,
-                                            bInOpen, bOutOpen );
+                                            bInOpen, bOutOpen ) );
 
 }
 
@@ -189,18 +189,14 @@ void SwitchablePersistenceStream::CopyAndSwitchPersistenceTo( const uno::Referen
 
     CloseAll_Impl();
 
-    m_pStreamData = new SPStreamData_Impl( false,
+    m_pStreamData.reset( new SPStreamData_Impl( false,
                                         xTargetTruncate, xTargetSeek, xTargetInStream, xTargetOutStream,
-                                        bInOpen, bOutOpen );
+                                        bInOpen, bOutOpen ) );
 }
 
 void SwitchablePersistenceStream::CloseAll_Impl()
 {
-    if ( m_pStreamData )
-    {
-        delete m_pStreamData;
-        m_pStreamData = nullptr;
-    }
+    m_pStreamData.reset();
 }
 
 // css::io::XStream
diff --git a/package/source/xstor/switchpersistencestream.hxx b/package/source/xstor/switchpersistencestream.hxx
index a42ca023e227..f52d9bd4415e 100644
--- a/package/source/xstor/switchpersistencestream.hxx
+++ b/package/source/xstor/switchpersistencestream.hxx
@@ -54,7 +54,7 @@ class SwitchablePersistenceStream
 
     const css::uno::Reference< css::uno::XComponentContext > m_xContext;
 
-    SPStreamData_Impl* m_pStreamData;
+    std::unique_ptr<SPStreamData_Impl> m_pStreamData;
 
     void CloseAll_Impl();
 
commit 7e937a13840129b1aba0ffcc560dc07e891ebe09
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Apr 16 12:06:48 2018 +0200

    loplugin:useuniqueptr in Inflater,Deflater
    
    Change-Id: I55833664a6e76d781908b8f1f721dd9a4946e35f
    Reviewed-on: https://gerrit.libreoffice.org/53224
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/compilerplugins/clang/useuniqueptr.cxx b/compilerplugins/clang/useuniqueptr.cxx
index 192ae50a4eba..0b5fb2c79aa7 100644
--- a/compilerplugins/clang/useuniqueptr.cxx
+++ b/compilerplugins/clang/useuniqueptr.cxx
@@ -42,6 +42,9 @@ public:
         // this just too clever for me
         if (fn == SRCDIR "/sc/source/core/tool/chgtrack.cxx")
             return;
+        // too clever
+        if (fn == SRCDIR "/pyuno/source/module/pyuno_runtime.cxx")
+            return;
 
         TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
     }
diff --git a/include/package/Deflater.hxx b/include/package/Deflater.hxx
index 9d88997f5be6..2ecb7636ff19 100644
--- a/include/package/Deflater.hxx
+++ b/include/package/Deflater.hxx
@@ -22,6 +22,7 @@
 
 #include <com/sun/star/uno/Sequence.hxx>
 #include <package/packagedllapi.hxx>
+#include <memory>
 
 struct z_stream_s;
 
@@ -35,7 +36,7 @@ class DLLPUBLIC_PACKAGE Deflater final
     bool                    bFinish;
     bool                    bFinished;
     sal_Int64               nOffset, nLength;
-    z_stream*               pStream;
+    std::unique_ptr<z_stream> pStream;
 
     void init (sal_Int32 nLevel, bool bNowrap);
     sal_Int32 doDeflateBytes (css::uno::Sequence < sal_Int8 > &rBuffer, sal_Int32 nNewOffset, sal_Int32 nNewLength);
diff --git a/include/package/Inflater.hxx b/include/package/Inflater.hxx
index ebec98734f3f..1e3892f83d75 100644
--- a/include/package/Inflater.hxx
+++ b/include/package/Inflater.hxx
@@ -22,6 +22,7 @@
 
 #include <com/sun/star/uno/Sequence.hxx>
 #include <package/packagedllapi.hxx>
+#include <memory>
 
 struct z_stream_s;
 
@@ -33,7 +34,7 @@ class DLLPUBLIC_PACKAGE Inflater final
 
     bool                    bFinished, bNeedDict;
     sal_Int32               nOffset, nLength, nLastInflateError;
-    z_stream*               pStream;
+    std::unique_ptr<z_stream>  pStream;
     css::uno::Sequence < sal_Int8 >  sInBuffer;
     sal_Int32   doInflateBytes (css::uno::Sequence < sal_Int8 > &rBuffer, sal_Int32 nNewOffset, sal_Int32 nNewLength);
 
diff --git a/package/source/zipapi/Deflater.cxx b/package/source/zipapi/Deflater.cxx
index e2f0e7ebd374..d50317357ef1 100644
--- a/package/source/zipapi/Deflater.cxx
+++ b/package/source/zipapi/Deflater.cxx
@@ -37,20 +37,20 @@ Deflater::~Deflater()
 }
 void Deflater::init (sal_Int32 nLevelArg, bool bNowrap)
 {
-    pStream = new z_stream;
+    pStream.reset(new z_stream);
     /* Memset it to 0...sets zalloc/zfree/opaque to NULL */
-    memset (pStream, 0, sizeof(*pStream));
+    memset (pStream.get(), 0, sizeof(*pStream));
 
-    switch (deflateInit2(pStream, nLevelArg, Z_DEFLATED, bNowrap? -MAX_WBITS : MAX_WBITS,
+    switch (deflateInit2(pStream.get(), nLevelArg, Z_DEFLATED, bNowrap? -MAX_WBITS : MAX_WBITS,
                 DEF_MEM_LEVEL, DEFAULT_STRATEGY))
     {
         case Z_OK:
             break;
         case Z_MEM_ERROR:
-            delete pStream;
+            pStream.reset();
             break;
         case Z_STREAM_ERROR:
-            delete pStream;
+            pStream.reset();
             break;
         default:
              break;
@@ -75,9 +75,9 @@ sal_Int32 Deflater::doDeflateBytes (uno::Sequence < sal_Int8 > &rBuffer, sal_Int
     pStream->avail_out = nNewLength;
 
 #if !defined Z_PREFIX
-    nResult = deflate(pStream, bFinish ? Z_FINISH : Z_NO_FLUSH);
+    nResult = deflate(pStream.get(), bFinish ? Z_FINISH : Z_NO_FLUSH);
 #else
-    nResult = z_deflate(pStream, bFinish ? Z_FINISH : Z_NO_FLUSH);
+    nResult = z_deflate(pStream.get(), bFinish ? Z_FINISH : Z_NO_FLUSH);
 #endif
     switch (nResult)
     {
@@ -124,9 +124,9 @@ sal_Int64 Deflater::getTotalOut(  )
 void Deflater::reset(  )
 {
 #if !defined Z_PREFIX
-    deflateReset(pStream);
+    deflateReset(pStream.get());
 #else
-    z_deflateReset(pStream);
+    z_deflateReset(pStream.get());
 #endif
     bFinish = false;
     bFinished = false;
@@ -134,16 +134,15 @@ void Deflater::reset(  )
 }
 void Deflater::end(  )
 {
-    if (pStream != nullptr)
+    if (pStream)
     {
 #if !defined Z_PREFIX
-        deflateEnd(pStream);
+        deflateEnd(pStream.get());
 #else
-        z_deflateEnd(pStream);
+        z_deflateEnd(pStream.get());
 #endif
-        delete pStream;
+        pStream.reset();
     }
-    pStream = nullptr;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/package/source/zipapi/Inflater.cxx b/package/source/zipapi/Inflater.cxx
index a059eb1418de..24a3b23e3156 100644
--- a/package/source/zipapi/Inflater.cxx
+++ b/package/source/zipapi/Inflater.cxx
@@ -34,20 +34,20 @@ Inflater::Inflater(bool bNoWrap)
   nLastInflateError(0),
   pStream(nullptr)
 {
-    pStream = new z_stream;
+    pStream.reset(new z_stream);
     /* memset to 0 to set zalloc/opaque etc */
-    memset (pStream, 0, sizeof(*pStream));
+    memset (pStream.get(), 0, sizeof(*pStream));
     sal_Int32 nRes;
-    nRes = inflateInit2(pStream, bNoWrap ? -MAX_WBITS : MAX_WBITS);
+    nRes = inflateInit2(pStream.get(), bNoWrap ? -MAX_WBITS : MAX_WBITS);
     switch (nRes)
     {
         case Z_OK:
             break;
         case Z_MEM_ERROR:
-            delete pStream;
+            pStream.reset();
             break;
         case Z_STREAM_ERROR:
-            delete pStream;
+            pStream.reset();
             break;
         default:
             break;
@@ -78,16 +78,15 @@ sal_Int32 Inflater::doInflateSegment( Sequence< sal_Int8 >& rBuffer, sal_Int32 n
 
 void Inflater::end(  )
 {
-    if (pStream != nullptr)
+    if (pStream)
     {
 #if !defined Z_PREFIX
-        inflateEnd(pStream);
+        inflateEnd(pStream.get());
 #else
-        z_inflateEnd(pStream);
+        z_inflateEnd(pStream.get());
 #endif
-        delete pStream;
+        pStream.reset();
     }
-    pStream = nullptr;
 }
 
 sal_Int32 Inflater::doInflateBytes (Sequence < sal_Int8 >  &rBuffer, sal_Int32 nNewOffset, sal_Int32 nNewLength)
@@ -106,9 +105,9 @@ sal_Int32 Inflater::doInflateBytes (Sequence < sal_Int8 >  &rBuffer, sal_Int32 n
     pStream->avail_out = nNewLength;
 
 #if !defined Z_PREFIX
-    sal_Int32 nResult = ::inflate(pStream, Z_PARTIAL_FLUSH);
+    sal_Int32 nResult = ::inflate(pStream.get(), Z_PARTIAL_FLUSH);
 #else
-    sal_Int32 nResult = ::z_inflate(pStream, Z_PARTIAL_FLUSH);
+    sal_Int32 nResult = ::z_inflate(pStream.get(), Z_PARTIAL_FLUSH);
 #endif
 
     switch (nResult)


More information about the Libreoffice-commits mailing list