[Libreoffice-commits] core.git: compilerplugins/clang editeng/source include/editeng

Noel Grandin noel.grandin at collabora.co.uk
Wed May 16 07:04:12 UTC 2018


 compilerplugins/clang/useuniqueptr.cxx |    4 ++++
 editeng/source/uno/unoforou.cxx        |   23 ++++++-----------------
 include/editeng/unoforou.hxx           |    6 +++---
 3 files changed, 13 insertions(+), 20 deletions(-)

New commits:
commit 19b4520fbfa8080821021586d8fe3428a2a893af
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Wed May 9 14:00:59 2018 +0200

    loplugin:useuniqueptr in SvxOutlinerForwarder
    
    Change-Id: Ie861132b43b0a01ee8b4f3bc201bbf12f8af9f36
    Reviewed-on: https://gerrit.libreoffice.org/54181
    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 c7f76fe6b962..0c82307a9da8 100644
--- a/compilerplugins/clang/useuniqueptr.cxx
+++ b/compilerplugins/clang/useuniqueptr.cxx
@@ -49,6 +49,10 @@ public:
         // and the logic depends on overriding methods.
         if (fn == SRCDIR "/sfx2/source/dialog/tabdlg.cxx")
             return;
+        // pLongArr is being deleted here because we temporarily overwrite a pointer to someone else's buffer, with a pointer
+        // to our own buffer
+        if (fn == SRCDIR "/editeng/source/misc/txtrange.cxx")
+            return;
 
         TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
     }
diff --git a/editeng/source/uno/unoforou.cxx b/editeng/source/uno/unoforou.cxx
index 3db46f1a83e9..fa8e08ed16d7 100644
--- a/editeng/source/uno/unoforou.cxx
+++ b/editeng/source/uno/unoforou.cxx
@@ -109,8 +109,7 @@ SfxItemSet SvxOutlinerForwarder::GetAttribs( const ESelection& rSel, EditEngineA
         else
         {
             // no, we need delete the old cache
-            delete mpAttribsCache;
-            mpAttribsCache = nullptr;
+            mpAttribsCache.reset();
         }
     }
 
@@ -122,7 +121,7 @@ SfxItemSet SvxOutlinerForwarder::GetAttribs( const ESelection& rSel, EditEngineA
 
     if( EditEngineAttribs::All == nOnlyHardAttrib )
     {
-        mpAttribsCache = new SfxItemSet( aSet );
+        mpAttribsCache.reset(new SfxItemSet( aSet ));
         maAttribCacheSelection = rSel;
     }
 
@@ -146,12 +145,11 @@ SfxItemSet SvxOutlinerForwarder::GetParaAttribs( sal_Int32 nPara ) const
         else
         {
             // no, we need delete the old cache
-            delete mpParaAttribsCache;
-            mpParaAttribsCache = nullptr;
+            mpParaAttribsCache.reset();
         }
     }
 
-    mpParaAttribsCache = new SfxItemSet( rOutliner.GetParaAttribs( nPara ) );
+    mpParaAttribsCache.reset(new SfxItemSet( rOutliner.GetParaAttribs( nPara ) ));
     mnParaAttribsCache = nPara;
 
     EditEngine& rEditEngine = const_cast<EditEngine&>(rOutliner.GetEditEngine());
@@ -253,17 +251,8 @@ SfxItemState SvxOutlinerForwarder::GetItemState( sal_Int32 nPara, sal_uInt16 nWh
 
 void SvxOutlinerForwarder::flushCache()
 {
-    if( mpAttribsCache )
-    {
-        delete mpAttribsCache;
-        mpAttribsCache = nullptr;
-    }
-
-    if( mpParaAttribsCache )
-    {
-        delete mpParaAttribsCache;
-        mpParaAttribsCache = nullptr;
-    }
+    mpAttribsCache.reset();
+    mpParaAttribsCache.reset();
 }
 
 LanguageType SvxOutlinerForwarder::GetLanguage( sal_Int32 nPara, sal_Int32 nIndex ) const
diff --git a/include/editeng/unoforou.hxx b/include/editeng/unoforou.hxx
index b04fdcdb59f5..0eb490b466fd 100644
--- a/include/editeng/unoforou.hxx
+++ b/include/editeng/unoforou.hxx
@@ -22,8 +22,8 @@
 
 #include <editeng/unoedsrc.hxx>
 #include <editeng/editengdllapi.h>
-
 #include <editeng/editdata.hxx>
+#include <memory>
 
 class Outliner;
 
@@ -37,14 +37,14 @@ private:
 
     /** this pointer may be null or point to an item set for the attribs of
         the selection maAttribsSelection */
-    mutable SfxItemSet* mpAttribsCache;
+    mutable std::unique_ptr<SfxItemSet> mpAttribsCache;
 
     /** if we have a cached attribute item set, this is the selection of it */
     mutable ESelection  maAttribCacheSelection;
 
     /** this pointer may be null or point to an item set for the paragraph
         mnParaAttribsCache */
-    mutable SfxItemSet* mpParaAttribsCache;
+    mutable std::unique_ptr<SfxItemSet> mpParaAttribsCache;
 
     /** if we have a cached para attribute item set, this is the paragraph of it */
     mutable sal_Int32   mnParaAttribsCache;


More information about the Libreoffice-commits mailing list