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

Julien Nabet serval2412 at yahoo.fr
Thu Sep 14 21:15:38 UTC 2017


 sc/source/filter/excel/xistyle.cxx       |   11 +++----
 sc/source/filter/html/htmlpars.cxx       |   48 +++++++++++++++----------------
 sc/source/filter/inc/htmlpars.hxx        |    9 ++---
 sc/source/filter/inc/sheetdatabuffer.hxx |   16 +++++-----
 sc/source/filter/inc/xistyle.hxx         |    8 ++---
 sc/source/filter/oox/sheetdatabuffer.cxx |    8 ++---
 6 files changed, 49 insertions(+), 51 deletions(-)

New commits:
commit d3503650d048dbd4b0c28010520d01479d1aabf1
Author: Julien Nabet <serval2412 at yahoo.fr>
Date:   Wed Sep 13 21:15:47 2017 +0200

    Replace some lists by vectors (sc/filter)
    
    Change-Id: Id5e5702045ef597db9ad1a44f99624152128f7a9
    Reviewed-on: https://gerrit.libreoffice.org/42257
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Tested-by: Julien Nabet <serval2412 at yahoo.fr>

diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx
index 79df922b42a6..452e6b36b9a5 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -62,13 +62,13 @@
 #include <svl/poolcach.hxx>
 #include <o3tl/make_unique.hxx>
 
-#include <list>
+#include <vector>
 
 #include <cppuhelper/implbase.hxx>
 #include <com/sun/star/container/XIndexAccess.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 
-using ::std::list;
+using ::std::vector;
 using namespace ::com::sun::star;
 
 typedef ::cppu::WeakImplHelper< container::XIndexAccess > XIndexAccess_BASE;
@@ -1323,7 +1323,7 @@ const ScPatternAttr& XclImpXF::CreatePattern( bool bSkipPoolDefs )
     return *mpPattern;
 }
 
-void XclImpXF::ApplyPatternToAttrList(
+void XclImpXF::ApplyPatternToAttrVector(
     std::vector<ScAttrEntry>& rAttrs, SCROW nRow1, SCROW nRow2, sal_uInt32 nForceScNumFmt)
 {
     // force creation of cell style and hard formatting, do it here to have mpStyleSheet
@@ -2002,7 +2002,7 @@ void XclImpXFRangeBuffer::Finalize()
                 sal_uInt32 nForceScNumFmt = rXFIndex.IsBoolCell() ?
                     GetNumFmtBuffer().GetStdScNumFmt() : NUMBERFORMAT_ENTRY_NOT_FOUND;
 
-                pXF->ApplyPatternToAttrList(aAttrs, rStyle.mnScRow1, rStyle.mnScRow2, nForceScNumFmt);
+                pXF->ApplyPatternToAttrVector(aAttrs, rStyle.mnScRow1, rStyle.mnScRow2, nForceScNumFmt);
             }
 
             if (aAttrs.empty() || aAttrs.back().nEndRow != MAXROW)
@@ -2018,13 +2018,12 @@ void XclImpXFRangeBuffer::Finalize()
             ScDocumentImport::Attrs aAttrParam;
             aAttrParam.mvData.swap(aAttrs);
             aAttrParam.mbLatinNumFmtOnly = false; // when unsure, set it to false.
-
             rDoc.setAttrEntries(nScTab, nScCol, std::move(aAttrParam));
         }
     }
 
     // insert hyperlink cells
-    for( XclImpHyperlinkList::const_iterator aLIt = maHyperlinks.begin(), aLEnd = maHyperlinks.end(); aLIt != aLEnd; ++aLIt )
+    for( XclImpHyperlinkVector::const_iterator aLIt = maHyperlinks.begin(), aLEnd = maHyperlinks.end(); aLIt != aLEnd; ++aLIt )
         XclImpHyperlink::InsertUrl( GetRoot(), aLIt->first, aLIt->second );
 
     // apply cell merging
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 7a631bb63fa3..2388da9a5376 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -1866,7 +1866,7 @@ ScHTMLTable::ScHTMLTable( ScHTMLTable& rParentTable, const HtmlImportInfo& rInfo
     maTableItemSet( rParentTable.GetCurrItemSet() ),
     mrEditEngine( rParentTable.mrEditEngine ),
     mrEEParseList( rParentTable.mrEEParseList ),
-    mpCurrEntryList( nullptr ),
+    mpCurrEntryVector( nullptr ),
     maSize( 1, 1 ),
     mpParser(rParentTable.mpParser),
     mbBorderOn( false ),
@@ -1914,7 +1914,7 @@ ScHTMLTable::ScHTMLTable(
     maTableItemSet( rPool ),
     mrEditEngine( rEditEngine ),
     mrEEParseList( rEEParseList ),
-    mpCurrEntryList( nullptr ),
+    mpCurrEntryVector( nullptr ),
     maSize( 1, 1 ),
     mpParser(pParser),
     mbBorderOn( false ),
@@ -2322,7 +2322,7 @@ SvNumberFormatter* ScHTMLTable::GetFormatTable()
 
 bool ScHTMLTable::IsEmptyCell() const
 {
-    return mpCurrEntryList && mpCurrEntryList->empty();
+    return mpCurrEntryVector && mpCurrEntryVector->empty();
 }
 
 bool ScHTMLTable::IsSpaceCharInfo( const HtmlImportInfo& rInfo )
@@ -2342,10 +2342,10 @@ void ScHTMLTable::CreateNewEntry( const HtmlImportInfo& rInfo )
     mxCurrEntry->aSel = rInfo.aSelection;
 }
 
-void ScHTMLTable::ImplPushEntryToList( ScHTMLEntryList& rEntryList, ScHTMLEntryPtr& rxEntry )
+void ScHTMLTable::ImplPushEntryToVector( ScHTMLEntryVector& rEntryVector, ScHTMLEntryPtr& rxEntry )
 {
     // HTML entry list does not own the entries
-    rEntryList.push_back( rxEntry.get() );
+    rEntryVector.push_back( rxEntry.get() );
     // mrEEParseList (reference to member of ScEEParser) owns the entries
     mrEEParseList.push_back( rxEntry.release() );
 }
@@ -2355,15 +2355,15 @@ bool ScHTMLTable::PushEntry( ScHTMLEntryPtr& rxEntry )
     bool bPushed = false;
     if( rxEntry.get() && rxEntry->HasContents() )
     {
-        if( mpCurrEntryList )
+        if( mpCurrEntryVector )
         {
             if( mbPushEmptyLine )
             {
                 ScHTMLEntryPtr xEmptyEntry = CreateEntry();
-                ImplPushEntryToList( *mpCurrEntryList, xEmptyEntry );
+                ImplPushEntryToVector( *mpCurrEntryVector, xEmptyEntry );
                 mbPushEmptyLine = false;
             }
-            ImplPushEntryToList( *mpCurrEntryList, rxEntry );
+            ImplPushEntryToVector( *mpCurrEntryVector, rxEntry );
             bPushed = true;
         }
         else if( mpParentTable )
@@ -2437,7 +2437,7 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
         current cell position stored in maCurrCell. */
     while( ((pRange = maVMergedCells.Find( maCurrCell.MakeAddr() )) != nullptr) || ((pRange = maHMergedCells.Find( maCurrCell.MakeAddr() )) != nullptr) )
         maCurrCell.mnCol = pRange->aEnd.Col() + 1;
-    mpCurrEntryList = &maEntryMap[ maCurrCell ];
+    mpCurrEntryVector = &maEntryMap[ maCurrCell ];
 
     /*  If the new cell is merged horizontally, try to find collisions with
         other vertically merged ranges. In this case, shrink existing
@@ -2515,7 +2515,7 @@ void ScHTMLTable::ImplDataOff()
     {
         mxDataItemSet.reset();
         ++maCurrCell.mnCol;
-        mpCurrEntryList = nullptr;
+        mpCurrEntryVector = nullptr;
         mbDataOn = false;
     }
 }
@@ -2639,7 +2639,7 @@ void ScHTMLTable::FillEmptyCells()
 
                 // insert a dummy entry
                 ScHTMLEntryPtr xEntry = CreateEntry();
-                ImplPushEntryToList( maEntryMap[ ScHTMLPos( aAddr ) ], xEntry );
+                ImplPushEntryToVector( maEntryMap[ ScHTMLPos( aAddr ) ], xEntry );
             }
         }
     }
@@ -2665,9 +2665,9 @@ void ScHTMLTable::RecalcDocSize()
             const ScHTMLPos& rCellPos = aMapIter->first;
             ScHTMLSize aCellSpan = GetSpan( rCellPos );
 
-            const ScHTMLEntryList& rEntryList = aMapIter->second;
-            ScHTMLEntryList::const_iterator aListIter;
-            ScHTMLEntryList::const_iterator aListIterEnd = rEntryList.end();
+            const ScHTMLEntryVector& rEntryVector = aMapIter->second;
+            ScHTMLEntryVector::const_iterator aVectorIter;
+            ScHTMLEntryVector::const_iterator aVectorIterEnd = rEntryVector.end();
 
             // process the dimension of the current cell in this pass?
             // (pass is single and span is 1) or (pass is not single and span is not 1)
@@ -2678,9 +2678,9 @@ void ScHTMLTable::RecalcDocSize()
                 ScHTMLSize aDocSize( 1, 0 );    // resulting size of the cell in document
 
                 // expand the cell size for each cell parse entry
-                for( aListIter = rEntryList.begin(); aListIter != aListIterEnd; ++aListIter )
+                for( aVectorIter = rEntryVector.begin(); aVectorIter != aVectorIterEnd; ++aVectorIter )
                 {
-                    ScHTMLTable* pTable = GetExistingTable( (*aListIter)->GetTableId() );
+                    ScHTMLTable* pTable = GetExistingTable( (*aVectorIter)->GetTableId() );
                     // find entry with maximum width
                     if( bProcessColWidth && pTable )
                         aDocSize.mnCols = std::max( aDocSize.mnCols, static_cast< SCCOL >( pTable->GetDocSize( tdCol ) ) );
@@ -2717,12 +2717,12 @@ void ScHTMLTable::RecalcDocPos( const ScHTMLPos& rBasePos )
         // running doc position for single entries
         ScHTMLPos aEntryDocPos( aCellDocPos );
 
-        ScHTMLEntryList& rEntryList = aMapIter->second;
+        ScHTMLEntryVector& rEntryVector = aMapIter->second;
         ScHTMLEntry* pEntry = nullptr;
-        ScHTMLEntryList::iterator aListIterEnd = rEntryList.end();
-        for( ScHTMLEntryList::iterator aListIter = rEntryList.begin(); aListIter != aListIterEnd; ++aListIter )
+        ScHTMLEntryVector::iterator aVectorIterEnd = rEntryVector.end();
+        for( ScHTMLEntryVector::iterator aVectorIter = rEntryVector.begin(); aVectorIter != aVectorIterEnd; ++aVectorIter )
         {
-            pEntry = *aListIter;
+            pEntry = *aVectorIter;
             if( ScHTMLTable* pTable = GetExistingTable( pEntry->GetTableId() ) )
             {
                 pTable->RecalcDocPos( aEntryDocPos );   // recalc nested table
@@ -2758,7 +2758,7 @@ void ScHTMLTable::RecalcDocPos( const ScHTMLPos& rBasePos )
         // pEntry points now to last entry.
         if( pEntry )
         {
-            if( (pEntry == rEntryList.front()) && (pEntry->GetTableId() == SC_HTML_NO_TABLE) )
+            if( (pEntry == rEntryVector.front()) && (pEntry->GetTableId() == SC_HTML_NO_TABLE) )
             {
                 // pEntry is the only entry in this cell - merge rows of cell with single non-table entry.
                 pEntry->nRowOverlap = aCellDocSize.mnRows;
@@ -2773,7 +2773,7 @@ void ScHTMLTable::RecalcDocPos( const ScHTMLPos& rBasePos )
                     xDummyEntry->nCol = aEntryDocPos.mnCol;
                     xDummyEntry->nRow = aEntryDocPos.mnRow;
                     xDummyEntry->nColOverlap = aCellDocSize.mnCols;
-                    ImplPushEntryToList( rEntryList, xDummyEntry );
+                    ImplPushEntryToVector( rEntryVector, xDummyEntry );
                     ++aEntryDocPos.mnRow;
                 }
             }
@@ -2784,11 +2784,11 @@ void ScHTMLTable::RecalcDocPos( const ScHTMLPos& rBasePos )
 ScHTMLGlobalTable::ScHTMLGlobalTable(
     SfxItemPool& rPool,
     EditEngine& rEditEngine,
-    std::vector< ScEEParseEntry* >& rEEParseList,
+    std::vector< ScEEParseEntry* >& rEEParseVector,
     ScHTMLTableId& rnUnusedId,
     ScHTMLParser* pParser
 ) :
-    ScHTMLTable( rPool, rEditEngine, rEEParseList, rnUnusedId, pParser )
+    ScHTMLTable( rPool, rEditEngine, rEEParseVector, rnUnusedId, pParser )
 {
 }
 
diff --git a/sc/source/filter/inc/htmlpars.hxx b/sc/source/filter/inc/htmlpars.hxx
index 2e0ef191bde3..43575da8293a 100644
--- a/sc/source/filter/inc/htmlpars.hxx
+++ b/sc/source/filter/inc/htmlpars.hxx
@@ -20,7 +20,6 @@
 #ifndef INCLUDED_SC_SOURCE_FILTER_INC_HTMLPARS_HXX
 #define INCLUDED_SC_SOURCE_FILTER_INC_HTMLPARS_HXX
 
-#include <list>
 #include <memory>
 #include <map>
 #include <stack>
@@ -443,8 +442,8 @@ private:
     typedef ::std::unique_ptr< ScHTMLTableMap >         ScHTMLTableMapPtr;
     typedef ::std::unique_ptr< SfxItemSet >             SfxItemSetPtr;
     typedef ::std::vector< SCCOLROW >                   ScSizeVec;
-    typedef ::std::list< ScHTMLEntry* >                 ScHTMLEntryList;
-    typedef ::std::map< ScHTMLPos, ScHTMLEntryList >    ScHTMLEntryMap;
+    typedef ::std::vector< ScHTMLEntry* >               ScHTMLEntryVector;
+    typedef ::std::map< ScHTMLPos, ScHTMLEntryVector >    ScHTMLEntryMap;
     typedef ::std::unique_ptr< ScHTMLEntry >            ScHTMLEntryPtr;
 
     /** Returns true, if the current cell does not contain an entry yet. */
@@ -465,7 +464,7 @@ private:
     void                InsertLeadingEmptyLine();
 
     /** Pushes the passed entry into the list of the current cell. */
-    void                ImplPushEntryToList( ScHTMLEntryList& rEntryList, ScHTMLEntryPtr& rxEntry );
+    void                ImplPushEntryToVector( ScHTMLEntryVector& rEntryVector, ScHTMLEntryPtr& rxEntry );
     /** Tries to insert the entry into the current cell.
         @descr  If insertion is not possible (i.e., currently no cell open), the
         entry will be inserted into the parent table.
@@ -529,7 +528,7 @@ private:
     EditEngine&         mrEditEngine;       /// Edit engine (from ScEEParser).
     ::std::vector< ScEEParseEntry* >& mrEEParseList;      /// List that owns the parse entries (from ScEEParser).
     ScHTMLEntryMap      maEntryMap;         /// List of entries for each cell.
-    ScHTMLEntryList*    mpCurrEntryList;    /// Current entry list from map for faster access.
+    ScHTMLEntryVector*  mpCurrEntryVector;  /// Current entry vector from map for faster access.
     ScHTMLEntryPtr      mxCurrEntry;        /// Working entry, not yet inserted in a list.
     ScSizeVec           maCumSizes[ 2 ];    /// Cumulated cell counts for each HTML table column/row.
     ScHTMLSize          maSize;             /// Size of the table.
diff --git a/sc/source/filter/inc/sheetdatabuffer.hxx b/sc/source/filter/inc/sheetdatabuffer.hxx
index 86590bb43e76..ef8db4c73ae3 100644
--- a/sc/source/filter/inc/sheetdatabuffer.hxx
+++ b/sc/source/filter/inc/sheetdatabuffer.hxx
@@ -20,7 +20,7 @@
 #ifndef INCLUDED_SC_SOURCE_FILTER_INC_SHEETDATABUFFER_HXX
 #define INCLUDED_SC_SOURCE_FILTER_INC_SHEETDATABUFFER_HXX
 
-#include <list>
+#include <vector>
 #include <map>
 #include <set>
 
@@ -171,11 +171,11 @@ private:
 private:
     /** Stores cell range address and formula token array of an array formula. */
     typedef std::pair< ScRange, ApiTokenSequence > ArrayFormula;
-    typedef ::std::list< ArrayFormula > ArrayFormulaList;
+    typedef ::std::vector< ArrayFormula > ArrayFormulaVector;
 
     /** Stores cell range address and settings of a table operation. */
     typedef std::pair< ScRange, DataTableModel > TableOperation;
-    typedef ::std::list< TableOperation > TableOperationList;
+    typedef ::std::vector< TableOperation > TableOperationVector;
 
     /** Stores information about a range of rows with equal cell formatting. */
     struct XfIdRowRange
@@ -217,20 +217,20 @@ private:
         explicit            MergedRange( const ScAddress& rAddress, sal_Int32 nHorAlign );
         bool                tryExpand( const ScAddress& rAddress, sal_Int32 nHorAlign );
     };
-    typedef ::std::list< MergedRange > MergedRangeList;
+    typedef ::std::vector< MergedRange > MergedRangeVector;
 
     ColStyles           maStylesPerColumn;      /// Stores cell styles by column ( in row ranges )
     CellBlockBuffer     maCellBlocks;           /// Manages all open cell blocks.
-    ArrayFormulaList    maArrayFormulas;        /// All array formulas in the sheet.
-    TableOperationList  maTableOperations;      /// All table operations in the sheet.
+    ArrayFormulaVector  maArrayFormulas;        /// All array formulas in the sheet.
+    TableOperationVector maTableOperations;      /// All table operations in the sheet.
     ::std::map< BinAddress, ApiTokenSequence >
                         maSharedFormulas;       /// Maps shared formula base address to defined name token index.
     ScAddress           maSharedFmlaAddr;       /// Address of a cell containing a pending shared formula.
     ScAddress           maSharedBaseAddr;       /// Base address of the pending shared formula.
     XfIdRowRange        maXfIdRowRange;         /// Cached XF identifier for a range of rows.
     XfIdRangeListMap    maXfIdRangeLists;       /// Collected XF identifiers for cell rangelists.
-    MergedRangeList     maMergedRanges;         /// Merged cell ranges.
-    MergedRangeList     maCenterFillRanges;     /// Merged cell ranges from 'center across' or 'fill' alignment.
+    MergedRangeVector   maMergedRanges;         /// Merged cell ranges.
+    MergedRangeVector   maCenterFillRanges;     /// Merged cell ranges from 'center across' or 'fill' alignment.
     bool                mbPendingSharedFmla;    /// True = maSharedFmlaAddr and maSharedBaseAddr are valid.
     std::map< sal_Int32, std::vector< ValueRange > > maXfIdRowRangeList; /// Cached XF identifiers for a ranges of rows, we try and process rowranges with the same XF id together
 };
diff --git a/sc/source/filter/inc/xistyle.hxx b/sc/source/filter/inc/xistyle.hxx
index 6acd9a13d5f2..930854af35de 100644
--- a/sc/source/filter/inc/xistyle.hxx
+++ b/sc/source/filter/inc/xistyle.hxx
@@ -20,7 +20,7 @@
 #ifndef INCLUDED_SC_SOURCE_FILTER_INC_XISTYLE_HXX
 #define INCLUDED_SC_SOURCE_FILTER_INC_XISTYLE_HXX
 
-#include <list>
+#include <vector>
 #include <memory>
 #include <vector>
 #include <tools/mempool.hxx>
@@ -401,7 +401,7 @@ public:
         @return  A read-only reference to the item set stored internally. */
     const ScPatternAttr& CreatePattern( bool bSkipPoolDefs = false );
 
-    void                ApplyPatternToAttrList(
+    void                ApplyPatternToAttrVector(
                             ::std::vector<ScAttrEntry>& rAttrs, SCROW nRow1, SCROW nRow2,
                             sal_uInt32 nForceScNumFmt);
 
@@ -669,10 +669,10 @@ private:
     typedef std::shared_ptr< XclImpXFRangeColumn > XclImpXFRangeColumnRef;
     typedef ::std::vector< XclImpXFRangeColumnRef >  XclImpXFRangeColumnVec;
     typedef ::std::pair< XclRange, OUString >        XclImpHyperlinkRange;
-    typedef ::std::list< XclImpHyperlinkRange >      XclImpHyperlinkList;
+    typedef ::std::vector< XclImpHyperlinkRange >      XclImpHyperlinkVector;
 
     XclImpXFRangeColumnVec maColumns;       /// Array of column XF index buffers.
-    XclImpHyperlinkList maHyperlinks;       /// Maps URLs to hyperlink cells.
+    XclImpHyperlinkVector maHyperlinks;     /// Maps URLs to hyperlink cells.
     ScRangeList         maMergeList;        /// List of merged cell ranges.
 };
 
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx
index f6c6d8be0792..67c768c0a10a 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -400,11 +400,11 @@ void SheetDataBuffer::addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const
 void SheetDataBuffer::finalizeImport()
 {
     // create all array formulas
-    for( ArrayFormulaList::iterator aIt = maArrayFormulas.begin(), aEnd = maArrayFormulas.end(); aIt != aEnd; ++aIt )
+    for( ArrayFormulaVector::iterator aIt = maArrayFormulas.begin(), aEnd = maArrayFormulas.end(); aIt != aEnd; ++aIt )
         finalizeArrayFormula( aIt->first, aIt->second );
 
     // create all table operations
-    for( TableOperationList::iterator aIt = maTableOperations.begin(), aEnd = maTableOperations.end(); aIt != aEnd; ++aIt )
+    for( TableOperationVector::iterator aIt = maTableOperations.begin(), aEnd = maTableOperations.end(); aIt != aEnd; ++aIt )
         finalizeTableOperation( aIt->first, aIt->second );
 
     // write default formatting of remaining row range
@@ -492,9 +492,9 @@ void SheetDataBuffer::finalizeImport()
     }
 
     // merge all cached merged ranges and update right/bottom cell borders
-    for( MergedRangeList::iterator aIt = maMergedRanges.begin(), aEnd = maMergedRanges.end(); aIt != aEnd; ++aIt )
+    for( MergedRangeVector::iterator aIt = maMergedRanges.begin(), aEnd = maMergedRanges.end(); aIt != aEnd; ++aIt )
         applyCellMerging( aIt->maRange );
-    for( MergedRangeList::iterator aIt = maCenterFillRanges.begin(), aEnd = maCenterFillRanges.end(); aIt != aEnd; ++aIt )
+    for( MergedRangeVector::iterator aIt = maCenterFillRanges.begin(), aEnd = maCenterFillRanges.end(); aIt != aEnd; ++aIt )
         applyCellMerging( aIt->maRange );
 }
 


More information about the Libreoffice-commits mailing list