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

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Jan 11 07:42:11 UTC 2019


 sw/source/core/inc/UndoSort.hxx     |    2 --
 sw/source/core/undo/unsort.cxx      |   24 ++++++++++--------------
 sw/source/core/unocore/unoframe.cxx |   11 ++++-------
 3 files changed, 14 insertions(+), 23 deletions(-)

New commits:
commit 77e62790800f912f557613d98273555292b002d6
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Thu Jan 10 16:52:17 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Jan 11 08:41:58 2019 +0100

    use unique_ptr in SwXFrame
    
    Change-Id: I3671bf7ab7913a2f07eec347c1e07d036bfca4c4
    Reviewed-on: https://gerrit.libreoffice.org/66122
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index d63bd91847b1..18da4371bc2c 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -1548,7 +1548,7 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any&
 
             UnoActionContext aAction(pFormat->GetDoc());
 
-            SfxItemSet* pSet = nullptr;
+            std::unique_ptr<SfxItemSet> pSet;
             // #i31771#, #i25798# - No adjustment of
             // anchor ( no call of method <sw_ChkAndSetNewAnchor(..)> ),
             // if document is currently in reading mode.
@@ -1563,21 +1563,18 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any&
                     const ::SfxPoolItem* pItem;
                     if( SfxItemState::SET == pFrameFormat->GetItemState( RES_ANCHOR, false, &pItem ))
                     {
-                        pSet = new SfxItemSet( pDoc->GetAttrPool(), aFrameFormatSetRange );
+                        pSet.reset(new SfxItemSet( pDoc->GetAttrPool(), aFrameFormatSetRange ));
                         pSet->Put( *pItem );
                         if ( pFormat->GetDoc()->GetEditShell() != nullptr
                              && !sw_ChkAndSetNewAnchor( *pFly, *pSet ) )
                         {
-                            delete pSet;
-                            pSet = nullptr;
+                            pSet.reset();
                         }
                     }
                 }
             }
 
-            pFormat->GetDoc()->SetFrameFormatToFly( *pFormat, *pFrameFormat, pSet );
-            delete pSet;
-
+            pFormat->GetDoc()->SetFrameFormatToFly( *pFormat, *pFrameFormat, pSet.get() );
         }
         else if (FN_UNO_GRAPHIC_FILTER == pEntry->nWID)
         {
commit 9e2ca20b0514cc77102c9985ad72f242c0af910e
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Thu Jan 10 16:43:53 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Jan 11 08:41:44 2019 +0100

    no need to allocate on heap in SwUndoSortList
    
    Change-Id: I949a9d32b18d5ccae17dee26f030173307d0b3fb
    Reviewed-on: https://gerrit.libreoffice.org/66121
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/core/inc/UndoSort.hxx b/sw/source/core/inc/UndoSort.hxx
index 167aaa4ef625..27f97ceaf995 100644
--- a/sw/source/core/inc/UndoSort.hxx
+++ b/sw/source/core/inc/UndoSort.hxx
@@ -57,8 +57,6 @@ struct SwSortUndoElement
     ~SwSortUndoElement();
 };
 
-typedef std::vector<SwNodeIndex*> SwUndoSortList;
-
 class SwUndoSort : public SwUndo, private SwUndRng
 {
     std::unique_ptr<SwSortOptions>    pSortOpt;
diff --git a/sw/source/core/undo/unsort.cxx b/sw/source/core/undo/unsort.cxx
index ac354d889be4..b20d4e5b94a2 100644
--- a/sw/source/core/undo/unsort.cxx
+++ b/sw/source/core/undo/unsort.cxx
@@ -121,7 +121,8 @@ void SwUndoSort::UndoImpl(::sw::UndoRedoContext & rContext)
 
         // create index for (sorted) positions
         // The IndexList must be created based on (asc.) sorted SourcePosition.
-        SwUndoSortList aIdxList;
+        std::vector<SwNodeIndex> aIdxList;
+        aIdxList.reserve(m_SortList.size());
 
         for (size_t i = 0; i < m_SortList.size(); ++i)
         {
@@ -129,9 +130,8 @@ void SwUndoSort::UndoImpl(::sw::UndoRedoContext & rContext)
             {
                 if (j->SORT_TXT_TBL.TXT.nSource == nSttNode + i)
                 {
-                    SwNodeIndex* pIdx = new SwNodeIndex( rDoc.GetNodes(),
-                        j->SORT_TXT_TBL.TXT.nTarget );
-                    aIdxList.insert( aIdxList.begin() + i, pIdx );
+                    aIdxList.push_back( SwNodeIndex( rDoc.GetNodes(),
+                                            j->SORT_TXT_TBL.TXT.nTarget ) );
                     break;
                 }
             }
@@ -140,13 +140,11 @@ void SwUndoSort::UndoImpl(::sw::UndoRedoContext & rContext)
         for (size_t i = 0; i < m_SortList.size(); ++i)
         {
             SwNodeIndex aIdx( rDoc.GetNodes(), nSttNode + i );
-            SwNodeRange aRg( *aIdxList[i], 0, *aIdxList[i], 1 );
+            SwNodeRange aRg( aIdxList[i], 0, aIdxList[i], 1 );
             rDoc.getIDocumentContentOperations().MoveNodeRange(aRg, aIdx,
                 SwMoveFlags::DEFAULT);
         }
         // delete indices
-        for(auto& rpIdx : aIdxList)
-            delete rpIdx;
         aIdxList.clear();
         SetPaM(rPam, true);
     }
@@ -203,25 +201,23 @@ void SwUndoSort::RedoImpl(::sw::UndoRedoContext & rContext)
         SetPaM(rPam);
         RemoveIdxFromRange(rPam, true);
 
-        SwUndoSortList aIdxList;
+        std::vector<SwNodeIndex> aIdxList;
+        aIdxList.reserve(m_SortList.size());
 
         for (size_t i = 0; i < m_SortList.size(); ++i)
         {   // current position is starting point
-            SwNodeIndex* pIdx = new SwNodeIndex( rDoc.GetNodes(),
-                    m_SortList[i]->SORT_TXT_TBL.TXT.nSource);
-            aIdxList.insert( aIdxList.begin() + i, pIdx );
+            aIdxList.push_back( SwNodeIndex( rDoc.GetNodes(),
+                                             m_SortList[i]->SORT_TXT_TBL.TXT.nSource) );
         }
 
         for (size_t i = 0; i < m_SortList.size(); ++i)
         {
             SwNodeIndex aIdx( rDoc.GetNodes(), nSttNode + i);
-            SwNodeRange aRg( *aIdxList[i], 0, *aIdxList[i], 1 );
+            SwNodeRange aRg( aIdxList[i], 0, aIdxList[i], 1 );
             rDoc.getIDocumentContentOperations().MoveNodeRange(aRg, aIdx,
                 SwMoveFlags::DEFAULT);
         }
         // delete indices
-        for(auto& rpIdx : aIdxList)
-            delete rpIdx;
         aIdxList.clear();
         SetPaM(rPam, true);
         SwTextNode const*const pTNd = rPam.GetNode().GetTextNode();


More information about the Libreoffice-commits mailing list