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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Aug 15 06:42:27 UTC 2018


 filter/source/graphicfilter/icgm/chart.cxx  |   28 +++++-----------------------
 filter/source/graphicfilter/icgm/chart.hxx  |    5 ++---
 filter/source/graphicfilter/icgm/class7.cxx |    4 ++--
 sw/source/filter/inc/msfilter.hxx           |    8 ++++----
 sw/source/filter/ww8/writerhelper.cxx       |   12 ++++++------
 sw/source/filter/ww8/ww8par.cxx             |    3 +--
 sw/source/filter/ww8/ww8par.hxx             |   10 +++++-----
 7 files changed, 25 insertions(+), 45 deletions(-)

New commits:
commit 45c2eb2eced00c51198ea2e4e09a8c06d0a81305
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Aug 14 17:17:00 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Aug 15 08:42:12 2018 +0200

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

diff --git a/sw/source/filter/inc/msfilter.hxx b/sw/source/filter/inc/msfilter.hxx
index 9cd6dec4455f..4babe2e56c95 100644
--- a/sw/source/filter/inc/msfilter.hxx
+++ b/sw/source/filter/inc/msfilter.hxx
@@ -292,7 +292,7 @@ namespace sw
         class RedlineStack
         {
         private:
-            std::vector<SwFltStackEntry *> maStack;
+            std::vector<std::unique_ptr<SwFltStackEntry>> maStack;
             SwDoc &mrDoc;
 
             RedlineStack(RedlineStack const&) = delete;
@@ -315,7 +315,7 @@ namespace sw
             SwDoc &mrDoc;
         public:
             explicit SetInDocAndDelete(SwDoc &rDoc) : mrDoc(rDoc) {}
-            void operator()(SwFltStackEntry *pEntry);
+            void operator()(std::unique_ptr<SwFltStackEntry> & pEntry);
         private:
             SetInDocAndDelete& operator=(const SetInDocAndDelete&) = delete;
         };
@@ -326,7 +326,7 @@ namespace sw
             const SwPosition &mrPos;
         public:
             explicit SetEndIfOpen(const SwPosition &rPos) : mrPos(rPos) {}
-                void operator()(SwFltStackEntry *pEntry) const
+                void operator()(std::unique_ptr<SwFltStackEntry> & pEntry) const
             {
                 if (pEntry->bOpen)
                     pEntry->SetEndPos(mrPos);
@@ -338,7 +338,7 @@ namespace sw
         class CompareRedlines
         {
         public:
-            bool operator()(const SwFltStackEntry *pOneE, const SwFltStackEntry *pTwoE)
+            bool operator()(const std::unique_ptr<SwFltStackEntry> & pOneE, const std::unique_ptr<SwFltStackEntry> & pTwoE)
                 const;
         };
 
diff --git a/sw/source/filter/ww8/writerhelper.cxx b/sw/source/filter/ww8/writerhelper.cxx
index 9e94dd9a3e17..03821f0b1696 100644
--- a/sw/source/filter/ww8/writerhelper.cxx
+++ b/sw/source/filter/ww8/writerhelper.cxx
@@ -682,7 +682,7 @@ namespace sw
         void RedlineStack::open(const SwPosition& rPos, const SfxPoolItem& rAttr)
         {
             OSL_ENSURE(rAttr.Which() == RES_FLTR_REDLINE, "not a redline");
-            maStack.push_back(new SwFltStackEntry(rPos,rAttr.Clone()));
+            maStack.emplace_back(new SwFltStackEntry(rPos,rAttr.Clone()));
         }
 
         class SameOpenRedlineType
@@ -691,7 +691,7 @@ namespace sw
             RedlineType_t meType;
         public:
             explicit SameOpenRedlineType(RedlineType_t eType) : meType(eType) {}
-            bool operator()(const SwFltStackEntry *pEntry) const
+            bool operator()(const std::unique_ptr<SwFltStackEntry> & pEntry) const
             {
                 const SwFltRedline *pTest = static_cast<const SwFltRedline *>
                     (pEntry->pAttr.get());
@@ -771,7 +771,7 @@ namespace sw
             }
         }
 
-        void SetInDocAndDelete::operator()(SwFltStackEntry *pEntry)
+        void SetInDocAndDelete::operator()(std::unique_ptr<SwFltStackEntry>& pEntry)
         {
             SwPaM aRegion(pEntry->m_aMkPos.m_nNode);
             if (
@@ -805,11 +805,11 @@ namespace sw
                 mrDoc.getIDocumentRedlineAccess().SetRedlineFlags(RedlineFlags::NONE | RedlineFlags::ShowInsert |
                      RedlineFlags::ShowDelete );
             }
-            delete pEntry;
+            pEntry.reset();
         }
 
-        bool CompareRedlines::operator()(const SwFltStackEntry *pOneE,
-            const SwFltStackEntry *pTwoE) const
+        bool CompareRedlines::operator()(const std::unique_ptr<SwFltStackEntry> & pOneE,
+            const std::unique_ptr<SwFltStackEntry> & pTwoE) const
         {
             const SwFltRedline *pOne= static_cast<const SwFltRedline*>
                 (pOneE->pAttr.get());
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 648752df60fc..c6f7248de8d3 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -4281,13 +4281,12 @@ SwWW8ImplReader::~SwWW8ImplReader()
 {
 }
 
-void SwWW8ImplReader::DeleteStack(SwFltControlStack* pStck)
+void SwWW8ImplReader::DeleteStack(std::unique_ptr<SwFltControlStack> pStck)
 {
     if( pStck )
     {
         pStck->SetAttr( *m_pPaM->GetPoint(), 0, false);
         pStck->SetAttr( *m_pPaM->GetPoint(), 0, false);
-        delete pStck;
     }
     else
     {
diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
index 2e1baeac0778..ccab8afb730a 100644
--- a/sw/source/filter/ww8/ww8par.hxx
+++ b/sw/source/filter/ww8/ww8par.hxx
@@ -1395,19 +1395,19 @@ private:
     void CopyPageDescHdFt( const SwPageDesc* pOrgPageDesc,
                            SwPageDesc* pNewPageDesc, sal_uInt8 nCode );
 
-    void DeleteStack(SwFltControlStack* prStck);
+    void DeleteStack(std::unique_ptr<SwFltControlStack> prStck);
     void DeleteCtrlStack()
     {
-        DeleteStack(m_xCtrlStck.release());
+        DeleteStack(std::move(m_xCtrlStck));
     }
     void DeleteRefStacks()
     {
-        DeleteStack(m_xReffedStck.release());
-        DeleteStack(m_xReffingStck.release());
+        DeleteStack(std::move(m_xReffedStck));
+        DeleteStack(std::move(m_xReffingStck));
     }
     void DeleteAnchorStack()
     {
-        DeleteStack(m_xAnchorStck.release());
+        DeleteStack(std::move(m_xAnchorStck));
     }
     void emulateMSWordAddTextToParagraph(const OUString& rAddString);
     void simpleAddTextToParagraph(const OUString& rAddString);
commit 92f9fcc99d103a572d42b00a0227e3d8d8303be6
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Aug 14 10:10:25 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Aug 15 08:42:01 2018 +0200

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

diff --git a/filter/source/graphicfilter/icgm/chart.cxx b/filter/source/graphicfilter/icgm/chart.cxx
index eaefef22195e..afd39f69e556 100644
--- a/filter/source/graphicfilter/icgm/chart.cxx
+++ b/filter/source/graphicfilter/icgm/chart.cxx
@@ -33,34 +33,16 @@ CGMChart::CGMChart()
 CGMChart::~CGMChart()
 {
     // delete the whole textentry structure
-
-    while( !maTextEntryList.empty() )
-    {
-        DeleteTextEntry( maTextEntryList[ 0 ] );
-    }
-}
-
-void CGMChart::DeleteTextEntry( TextEntry* pTextEntry )
-{
-    if ( pTextEntry )
+    for (auto & pTextEntry : maTextEntryList)
     {
-        delete pTextEntry->pText;
-        ::std::vector< TextEntry* >::iterator it;
-        for ( it = maTextEntryList.begin(); it != maTextEntryList.end(); ++it )
-        {
-            if ( *it == pTextEntry )
-            {
-                maTextEntryList.erase( it );
-                break;
-            }
-        }
-        delete pTextEntry;
+        if ( pTextEntry )
+            delete pTextEntry->pText;
     }
 }
 
-void CGMChart::InsertTextEntry( TextEntry* pTextEntry )
+void CGMChart::InsertTextEntry( std::unique_ptr<TextEntry> pTextEntry )
 {
-    maTextEntryList.push_back( pTextEntry );
+    maTextEntryList.push_back( std::move(pTextEntry) );
 }
 
 void CGMChart::ResetAnnotation()
diff --git a/filter/source/graphicfilter/icgm/chart.hxx b/filter/source/graphicfilter/icgm/chart.hxx
index 445d558978d3..837015614696 100644
--- a/filter/source/graphicfilter/icgm/chart.hxx
+++ b/filter/source/graphicfilter/icgm/chart.hxx
@@ -64,15 +64,14 @@ class CGMChart final
     friend class CGMImpressOutAct;
 
         sal_Int8                mnCurrentFileType;
-        ::std::vector< TextEntry* > maTextEntryList;
+        ::std::vector< std::unique_ptr<TextEntry> > maTextEntryList;
         DataNode                mDataNode[ 7 ];
 
     public:
                                 CGMChart();
                                 ~CGMChart();
 
-        void                    DeleteTextEntry( TextEntry* );
-        void                    InsertTextEntry( TextEntry* );
+        void                    InsertTextEntry( std::unique_ptr<TextEntry> );
 
         void                    ResetAnnotation();
         bool                    IsAnnotation();
diff --git a/filter/source/graphicfilter/icgm/class7.cxx b/filter/source/graphicfilter/icgm/class7.cxx
index 54cebd4bdf2b..c85e5284e026 100644
--- a/filter/source/graphicfilter/icgm/class7.cxx
+++ b/filter/source/graphicfilter/icgm/class7.cxx
@@ -117,7 +117,7 @@ void CGM::ImplDoClass7()
                         if (mpEndValidSource - pAppData < 9)
                             throw css::uno::Exception("attempt to read past end of input", nullptr);
 
-                        TextEntry* pTextEntry = new TextEntry;
+                        std::unique_ptr<TextEntry> pTextEntry(new TextEntry);
                         pTextEntry->nTypeOfText = *reinterpret_cast<sal_uInt16*>( pAppData );
                         pTextEntry->nRowOrLineNum = *reinterpret_cast<sal_uInt16*>( pAppData + 2 );
                         pTextEntry->nColumnNum = *reinterpret_cast<sal_uInt16*>( pAppData + 4 );
@@ -132,7 +132,7 @@ void CGM::ImplDoClass7()
                         memcpy( pTextEntry->pText, pAppData, nLen );
                         pAppData += nLen;
 
-                        mpChart->InsertTextEntry( pTextEntry );
+                        mpChart->InsertTextEntry( std::move(pTextEntry) );
                     }
                     break;
                     case 0x321 : /*AppData - IOC_TABS */break;


More information about the Libreoffice-commits mailing list