[Libreoffice-commits] core.git: sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Aug 23 09:35:17 UTC 2018


 sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx |   37 ++++-------------
 sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx |    9 +---
 2 files changed, 13 insertions(+), 33 deletions(-)

New commits:
commit b1c44589581f7edefea782d5dadc4a4256f7ad37
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Wed Aug 22 14:45:01 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Thu Aug 23 11:34:48 2018 +0200

    simplify ScMyDeletedList
    
    no need to use std::list and no need to allocate entries directly
    
    Change-Id: If02cff310af85727d5d1152b7be6114ee0b0830e
    Reviewed-on: https://gerrit.libreoffice.org/59450
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
index fe0feec6e36f..5f1862ae023e 100644
--- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
+++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
@@ -78,16 +78,6 @@ const ScCellValue& ScMyCellInfo::CreateCell( ScDocument* pDoc )
     return maCell;
 }
 
-ScMyDeleted::ScMyDeleted()
-    : nID(0)
-    , pCellInfo(nullptr)
-{
-}
-
-ScMyDeleted::~ScMyDeleted()
-{
-}
-
 ScMyGenerated::ScMyGenerated(std::unique_ptr<ScMyCellInfo> pTempCellInfo, const ScBigRange& aTempBigRange)
     : aBigRange(aTempBigRange)
     , nID(0)
@@ -295,17 +285,12 @@ void ScXMLChangeTrackingImportHelper::SetPosition(const sal_Int32 nPosition, con
 
 void ScXMLChangeTrackingImportHelper::AddDeleted(const sal_uInt32 nID)
 {
-    ScMyDeleted* pDeleted = new ScMyDeleted();
-    pDeleted->nID = nID;
-    pCurrentAction->aDeletedList.push_front(pDeleted);
+    pCurrentAction->aDeletedList.emplace_front( nID, nullptr );
 }
 
 void ScXMLChangeTrackingImportHelper::AddDeleted(const sal_uInt32 nID, std::unique_ptr<ScMyCellInfo> pCellInfo)
 {
-    ScMyDeleted* pDeleted = new ScMyDeleted();
-    pDeleted->nID = nID;
-    pDeleted->pCellInfo = std::move(pCellInfo);
-    pCurrentAction->aDeletedList.push_front(pDeleted);
+    pCurrentAction->aDeletedList.emplace_front( nID, std::move(pCellInfo) );
 }
 
 void ScXMLChangeTrackingImportHelper::SetMultiSpanned(const sal_Int16 nTempMultiSpanned)
@@ -669,28 +654,26 @@ void ScXMLChangeTrackingImportHelper::SetDependencies(ScMyBaseAction* pAction)
         }
         if (!pAction->aDeletedList.empty())
         {
-            ScMyDeletedList::iterator aItr(pAction->aDeletedList.begin());
-            ScMyDeletedList::iterator aEndItr(pAction->aDeletedList.end());
+            auto aItr(pAction->aDeletedList.begin());
+            auto aEndItr(pAction->aDeletedList.end());
             while(aItr != aEndItr)
             {
-                pAct->SetDeletedInThis((*aItr)->nID, pTrack);
-                ScChangeAction* pDeletedAct = pTrack->GetAction((*aItr)->nID);
-                if ((pDeletedAct->GetType() == SC_CAT_CONTENT) && (*aItr)->pCellInfo)
+                pAct->SetDeletedInThis(aItr->nID, pTrack);
+                ScChangeAction* pDeletedAct = pTrack->GetAction(aItr->nID);
+                if ((pDeletedAct->GetType() == SC_CAT_CONTENT) && aItr->pCellInfo)
                 {
                     ScChangeActionContent* pContentAct = static_cast<ScChangeActionContent*>(pDeletedAct);
-                    if (pContentAct && (*aItr)->pCellInfo)
+                    if (pContentAct && aItr->pCellInfo)
                     {
-                        const ScCellValue& rCell = (*aItr)->pCellInfo->CreateCell(pDoc);
+                        const ScCellValue& rCell = aItr->pCellInfo->CreateCell(pDoc);
                         if (!rCell.equalsWithoutFormat(pContentAct->GetNewCell()))
                         {
                             // #i40704# Don't overwrite SetNewCell result by calling SetNewValue,
                             // instead pass the input string to SetNewCell.
-                            pContentAct->SetNewCell(rCell, pDoc, (*aItr)->pCellInfo->sInputString);
+                            pContentAct->SetNewCell(rCell, pDoc, aItr->pCellInfo->sInputString);
                         }
                     }
                 }
-                if (*aItr)
-                    delete *aItr;
                 aItr = pAction->aDeletedList.erase(aItr);
             }
         }
diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx b/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx
index 55b6588ab39c..036a9333613d 100644
--- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx
+++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx
@@ -61,15 +61,12 @@ struct ScMyCellInfo
 
 struct ScMyDeleted
 {
-    sal_uInt32 nID;
+    sal_uInt32 nID = 0;
     std::unique_ptr<ScMyCellInfo> pCellInfo;
 
-    ScMyDeleted();
-    ~ScMyDeleted();
+    ScMyDeleted(sal_uInt32 id, std::unique_ptr<ScMyCellInfo> p) : nID(id), pCellInfo(std::move(p)) {}
 };
 
-typedef std::list<ScMyDeleted*> ScMyDeletedList;
-
 struct ScMyGenerated
 {
     ScBigRange      aBigRange;
@@ -119,7 +116,7 @@ struct ScMyBaseAction
     ScMyActionInfo aInfo;
     ScBigRange aBigRange;
     ScMyDependencies aDependencies;
-    ScMyDeletedList aDeletedList;
+    std::deque<ScMyDeleted> aDeletedList;
     sal_uInt32 nActionNumber;
     sal_uInt32 nRejectingNumber;
     sal_uInt32 nPreviousAction;


More information about the Libreoffice-commits mailing list