[Libreoffice-commits] core.git: 2 commits - sw/source vcl/inc vcl/source

Noel Grandin noel.grandin at collabora.co.uk
Fri Nov 17 07:10:51 UTC 2017


 sw/source/uibase/config/uinums.cxx |   29 +++++++++++------------------
 sw/source/uibase/inc/uinums.hxx    |    6 +++---
 vcl/inc/sallayout.hxx              |    3 ++-
 vcl/source/gdi/sallayout.cxx       |   10 ++++------
 4 files changed, 20 insertions(+), 28 deletions(-)

New commits:
commit 54604f01330063635fb974b0ab4335d6af851551
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Thu Nov 16 09:51:25 2017 +0200

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

diff --git a/sw/source/uibase/config/uinums.cxx b/sw/source/uibase/config/uinums.cxx
index 24c79ddc2c79..3b7f3e35e10c 100644
--- a/sw/source/uibase/config/uinums.cxx
+++ b/sw/source/uibase/config/uinums.cxx
@@ -73,14 +73,12 @@ void SwChapterNumRules::Save()
 
 SwChapterNumRules::~SwChapterNumRules()
 {
-    for(SwNumRulesWithName* pNumRule : pNumRules)
-        delete pNumRule;
 }
 
 void  SwChapterNumRules::Init()
 {
-    for(SwNumRulesWithName* & rpNumRule : pNumRules)
-        rpNumRule = nullptr;
+    for(auto & rpNumRule : pNumRules)
+        rpNumRule.reset();
 
     OUString sNm(CHAPTER_FILENAME);
     SvtPathOptions aOpt;
@@ -96,14 +94,14 @@ void SwChapterNumRules::CreateEmptyNumRule(sal_uInt16 const nIndex)
 {
     assert(nIndex < nMaxRules);
     assert(!pNumRules[nIndex]);
-    pNumRules[nIndex] = new SwNumRulesWithName;
+    pNumRules[nIndex].reset(new SwNumRulesWithName);
 }
 
 void SwChapterNumRules::ApplyNumRules(const SwNumRulesWithName &rCopy, sal_uInt16 nIdx)
 {
     assert(nIdx < nMaxRules);
     if( !pNumRules[nIdx] )
-        pNumRules[nIdx] = new SwNumRulesWithName( rCopy );
+        pNumRules[nIdx].reset(new SwNumRulesWithName( rCopy ));
     else
         *pNumRules[nIdx] = rCopy;
     Save(); // store it immediately
@@ -117,9 +115,9 @@ SwNumRulesWithName::SwNumRulesWithName( const SwNumRule &rCopy,
     {
         const SwNumFormat* pFormat = rCopy.GetNumFormat( n );
         if( pFormat )
-            aFormats[ n ] = new SwNumFormatGlobal( *pFormat );
+            aFormats[ n ].reset(new SwNumFormatGlobal( *pFormat ));
         else
-            aFormats[ n ] = nullptr;
+            aFormats[ n ].reset();
     }
 }
 
@@ -136,8 +134,6 @@ SwNumRulesWithName::SwNumRulesWithName( const SwNumRulesWithName& rCopy )
 
 SwNumRulesWithName::~SwNumRulesWithName()
 {
-    for(SwNumFormatGlobal* p : aFormats)
-        delete p;
 }
 
 SwNumRulesWithName& SwNumRulesWithName::operator=(const SwNumRulesWithName &rCopy)
@@ -147,13 +143,11 @@ SwNumRulesWithName& SwNumRulesWithName::operator=(const SwNumRulesWithName &rCop
         maName = rCopy.maName;
         for( int n = 0; n < MAXLEVEL; ++n )
         {
-            delete aFormats[ n ];
-
-            SwNumFormatGlobal* pFormat = rCopy.aFormats[ n ];
+            SwNumFormatGlobal* pFormat = rCopy.aFormats[ n ].get();
             if( pFormat )
-                aFormats[ n ] = new SwNumFormatGlobal( *pFormat );
+                aFormats[ n ].reset(new SwNumFormatGlobal( *pFormat ));
             else
-                aFormats[ n ] = nullptr;
+                aFormats[ n ].reset();
         }
     }
     return *this;
@@ -166,7 +160,7 @@ SwNumRule* SwNumRulesWithName::MakeNumRule(SwWrtShell& rSh) const
     pChg->SetAutoRule( false );
     for (sal_uInt16 n = 0; n < MAXLEVEL; ++n)
     {
-        SwNumFormatGlobal* pFormat = aFormats[ n ];
+        SwNumFormatGlobal* pFormat = aFormats[ n ].get();
         if (!pFormat)
             continue;
         pChg->Set(n, pFormat->MakeNumFormat(rSh));
@@ -184,8 +178,7 @@ void SwNumRulesWithName::GetNumFormat(
 void SwNumRulesWithName::SetNumFormat(
         size_t const nIndex, SwNumFormat const& rNumFormat, OUString const& rName)
 {
-    delete aFormats[nIndex];
-    aFormats[nIndex] = new SwNumFormatGlobal(rNumFormat);
+    aFormats[nIndex].reset( new SwNumFormatGlobal(rNumFormat) );
     aFormats[nIndex]->sCharFormatName = rName;
     aFormats[nIndex]->nCharPoolId = USHRT_MAX;
     aFormats[nIndex]->m_Items.clear();
diff --git a/sw/source/uibase/inc/uinums.hxx b/sw/source/uibase/inc/uinums.hxx
index 9ccbddcae512..3e5767c4d87a 100644
--- a/sw/source/uibase/inc/uinums.hxx
+++ b/sw/source/uibase/inc/uinums.hxx
@@ -56,7 +56,7 @@ class SW_DLLPUBLIC SwNumRulesWithName final
         SwNumFormat MakeNumFormat(SwWrtShell& rSh) const;
     };
 
-    SwNumFormatGlobal* aFormats[ MAXLEVEL ];
+    std::unique_ptr<SwNumFormatGlobal> aFormats[ MAXLEVEL ];
 
     friend class sw::StoredChapterNumberingRules;
     friend class SwChapterNumRules;
@@ -82,7 +82,7 @@ class SW_DLLPUBLIC SwChapterNumRules final
 public:
     enum { nMaxRules = MAX_NUM_RULES };         // currently 9 defined forms
 private:
-    SwNumRulesWithName   *pNumRules[ MAX_NUM_RULES ];
+    std::unique_ptr<SwNumRulesWithName> pNumRules[ MAX_NUM_RULES ];
 
     void Init();
     void Save();
@@ -100,7 +100,7 @@ public:
 inline const SwNumRulesWithName *SwChapterNumRules::GetRules(sal_uInt16 nIdx) const
 {
     assert(nIdx < nMaxRules);
-    return pNumRules[nIdx];
+    return pNumRules[nIdx].get();
 }
 
 
commit ef3a2e634ca81f5fb292f88c4d7eb28d170ce3dd
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Thu Nov 16 09:51:07 2017 +0200

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

diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx
index 04d488d45fff..ff008c44dd55 100644
--- a/vcl/inc/sallayout.hxx
+++ b/vcl/inc/sallayout.hxx
@@ -22,6 +22,7 @@
 
 #include <iostream>
 #include <list>
+#include <memory>
 #include <vector>
 
 #include <basegfx/polygon/b2dpolypolygon.hxx>
@@ -243,7 +244,7 @@ private:
                     MultiSalLayout& operator=( const MultiSalLayout& ) = delete;
 
 private:
-    SalLayout*      mpLayouts[ MAX_FALLBACK ];
+    std::unique_ptr<SalLayout> mpLayouts[ MAX_FALLBACK ];
     const PhysicalFontFace* mpFallbackFonts[ MAX_FALLBACK ];
     ImplLayoutRuns  maFallbackRuns[ MAX_FALLBACK ];
     int             mnLevel;
diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index 6184d18e2ca9..b8957ae14eb3 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -1031,7 +1031,7 @@ MultiSalLayout::MultiSalLayout( std::unique_ptr<SalLayout> pBaseLayout )
 {
     //maFallbackRuns[0].Clear();
     mpFallbackFonts[ 0 ] = nullptr;
-    mpLayouts[ 0 ]  = pBaseLayout.release();
+    mpLayouts[ 0 ]  = std::move(pBaseLayout);
     mnUnitsPerPixel = mpLayouts[ 0 ]->GetUnitsPerPixel();
 }
 
@@ -1043,8 +1043,6 @@ void MultiSalLayout::SetIncomplete(bool bIncomplete)
 
 MultiSalLayout::~MultiSalLayout()
 {
-    for( int i = 0; i < mnLevel; ++i )
-        delete mpLayouts[ i ];
 }
 
 void MultiSalLayout::AddFallback( std::unique_ptr<SalLayout> pFallback,
@@ -1054,7 +1052,7 @@ void MultiSalLayout::AddFallback( std::unique_ptr<SalLayout> pFallback,
         return;
 
     mpFallbackFonts[ mnLevel ]  = pFallbackFont;
-    mpLayouts[ mnLevel ]        = pFallback.release();
+    mpLayouts[ mnLevel ]        = std::move(pFallback);
     maFallbackRuns[ mnLevel-1 ] = rFallbackRuns;
     ++mnLevel;
 }
@@ -1187,14 +1185,14 @@ void MultiSalLayout::AdjustLayout( ImplLayoutArgs& rArgs )
         if( (n > 0) && !nValid[ nLevel ] )
         {
             // an empty fallback layout can be released
-            delete mpLayouts[n];
+            mpLayouts[n].reset();
         }
         else
         {
             // reshuffle used fallbacks if needed
             if( nLevel != n )
             {
-                mpLayouts[ nLevel ]         = mpLayouts[ n ];
+                mpLayouts[ nLevel ]         = std::move(mpLayouts[ n ]);
                 mpFallbackFonts[ nLevel ]   = mpFallbackFonts[ n ];
                 maFallbackRuns[ nLevel ]    = maFallbackRuns[ n ];
             }


More information about the Libreoffice-commits mailing list