[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - sc/inc sc/Library_sc.mk sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Mon Nov 5 11:13:30 UTC 2018
sc/Library_sc.mk | 1
sc/inc/colcontainer.hxx | 44 +++++++++++++++++++++++------------
sc/inc/column.hxx | 1
sc/inc/table.hxx | 6 ++--
sc/source/core/data/colcontainer.cxx | 35 ---------------------------
sc/source/core/data/document.cxx | 2 -
sc/source/core/data/table1.cxx | 8 +++---
sc/source/core/data/table2.cxx | 4 +--
8 files changed, 41 insertions(+), 60 deletions(-)
New commits:
commit a6b8618c95717c6e4ea5a42edcd9997c5e9f3b9b
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Wed Nov 22 22:17:37 2017 -0500
Commit: Jan Holesovsky <kendy at collabora.com>
CommitDate: Mon Nov 5 12:12:44 2018 +0100
sc: simplify ScColContainer
Less clutter, no indirection and smaller memory footprint.
Reviewed-on: https://gerrit.libreoffice.org/45379
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
(cherry picked from commit 7c8c2b5e3a569d60375975d6fbad32e3c3c48c9d)
(cherry picked from commit f64ff421a338ac22981f7fa93166f179c158a4d0)
Change-Id: Ic24272e9853a7af28df62298fd26e7edce554986
Reviewed-on: https://gerrit.libreoffice.org/58155
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index 65c895501cd8..d7851c4a83f9 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -102,7 +102,6 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
sc/source/core/data/cellvalues \
sc/source/core/data/clipcontext \
sc/source/core/data/clipparam \
- sc/source/core/data/colcontainer \
sc/source/core/data/column \
sc/source/core/data/column2 \
sc/source/core/data/column3 \
diff --git a/sc/inc/colcontainer.hxx b/sc/inc/colcontainer.hxx
index bf2bd206850f..f134b64aa27a 100644
--- a/sc/inc/colcontainer.hxx
+++ b/sc/inc/colcontainer.hxx
@@ -22,29 +22,35 @@
#include "types.hxx"
#include "address.hxx"
+#include "column.hxx"
#include <vector>
-class ScColumn;
-class ScDocument;
-
-class ScColContainer
+class ScColContainer final
{
- typedef std::vector<ScColumn*> ScColumnVector;
+ typedef std::vector<ScColumn> ScColumnVector;
ScColumnVector aCols;
public:
- ScColContainer( const size_t nSize );
- ~ScColContainer() COVERITY_NOEXCEPT_FALSE;
+
+ ScColContainer(const size_t nSize)
+ : aCols(nSize)
+ {
+ }
+
+ ~ScColContainer() COVERITY_NOEXCEPT_FALSE
+ {
+ Clear();
+ }
const ScColumn& operator[] ( const size_t nIndex ) const
{
- return *aCols[nIndex];
+ return aCols[nIndex];
}
ScColumn& operator[] ( const size_t nIndex )
{
- return *aCols[nIndex];
+ return aCols[nIndex];
}
SCCOL size() const
@@ -57,27 +63,37 @@ public:
return aCols.empty();
}
- void resize( const size_t aNewSize );
+ void resize(const size_t aNewSize)
+ {
+ aCols.resize(aNewSize);
+ }
+
+ void Clear()
+ {
+ for (ScColumn& rCol: aCols)
+ rCol.PrepareBroadcastersForDestruction();
- void Clear();
+ aCols.clear();
+ }
const ScColumn& back() const
{
assert(aCols.size() > 0);
- return *aCols.back();
+ return aCols.back();
}
ScColumn& back()
{
assert(aCols.size() > 0);
- return *aCols.back();
+ return aCols.back();
}
+ ScColumnVector::iterator begin() { return aCols.begin(); }
+ ScColumnVector::iterator end() { return aCols.end(); }
ScColumnVector::const_iterator begin() const { return aCols.begin(); }
ScColumnVector::const_iterator end() const { return aCols.end(); }
};
-
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 7eeefd6e96b7..094e8d956e70 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -186,6 +186,7 @@ public:
};
ScColumn();
+ ScColumn(ScColumn&&) = default; // Required by ScColContainer::resize
~ScColumn() COVERITY_NOEXCEPT_FALSE;
void Init(SCCOL nNewCol, SCTAB nNewTab, ScDocument* pDoc, bool bEmptyAttrArray = false);
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index d6af98d394f0..f54f42c4c3eb 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -128,16 +128,16 @@ class ScColumnsRange final
const SCCOL*, // pointer
SCCOL> // reference
{
- std::vector<ScColumn*>::const_iterator maColIter;
+ std::vector<ScColumn>::const_iterator maColIter;
public:
- explicit Iterator(const std::vector<ScColumn*>::const_iterator& colIter) : maColIter(colIter) {}
+ explicit Iterator(const std::vector<ScColumn>::const_iterator& colIter) : maColIter(colIter) {}
Iterator& operator++() { ++maColIter; return *this;}
Iterator& operator--() { --maColIter; return *this;}
bool operator==(const Iterator & rOther) const {return maColIter == rOther.maColIter;}
bool operator!=(const Iterator & rOther) const {return !(*this == rOther);}
- reference operator*() const {return (*maColIter)->GetCol();}
+ reference operator*() const {return (*maColIter).GetCol();}
};
ScColumnsRange(const Iterator & rBegin, const Iterator & rEnd) : maBegin(rBegin), maEnd(rEnd) {}
diff --git a/sc/source/core/data/colcontainer.cxx b/sc/source/core/data/colcontainer.cxx
index 44dcf5ff7782..b2f93e975edd 100644
--- a/sc/source/core/data/colcontainer.cxx
+++ b/sc/source/core/data/colcontainer.cxx
@@ -18,39 +18,4 @@
*/
-#include <colcontainer.hxx>
-#include <column.hxx>
-#include <document.hxx>
-
-ScColContainer::ScColContainer( const size_t nSize )
-{
- aCols.resize( nSize );
- for ( size_t nCol = 0; nCol < nSize; ++nCol )
- aCols[nCol] = new ScColumn;
-}
-
-ScColContainer::~ScColContainer() COVERITY_NOEXCEPT_FALSE
-{
- Clear();
-}
-
-void ScColContainer::Clear()
-{
- SCCOL nSize = size();
- for ( SCCOL nIdx = 0; nIdx < nSize; ++nIdx )
- {
- aCols[nIdx]->PrepareBroadcastersForDestruction();
- delete aCols[nIdx];
- }
- aCols.clear();
-}
-
-void ScColContainer::resize( const size_t aNewColSize )
-{
- size_t aOldColSize = aCols.size();
- aCols.resize( aNewColSize );
- for ( size_t nCol = aOldColSize; nCol < aNewColSize; ++nCol )
- aCols[nCol] = new ScColumn;
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index f5a3218301f5..7d6d0c24f3a3 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -2547,7 +2547,7 @@ ScColumnsRange ScDocument::GetColumnsRange( SCTAB nTab, SCCOL nColBegin, SCCOL n
{
if (!TableExists(nTab))
{
- std::vector<ScColumn*> aEmptyVector;
+ std::vector<ScColumn> aEmptyVector;
return ScColumnsRange(ScColumnsRange::Iterator(aEmptyVector.begin()),
ScColumnsRange::Iterator(aEmptyVector.end()));
}
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx
index 4ce1306258f1..062184f9dbdb 100644
--- a/sc/source/core/data/table1.cxx
+++ b/sc/source/core/data/table1.cxx
@@ -1673,14 +1673,14 @@ void ScTable::UpdateReference(
void ScTable::UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
ScDocument* pUndoDoc )
{
- for (auto const & rpCol : aCol)
- rpCol->UpdateTranspose( rSource, rDest, pUndoDoc );
+ for (auto& rpCol : aCol)
+ rpCol.UpdateTranspose( rSource, rDest, pUndoDoc );
}
void ScTable::UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY )
{
- for (auto const & rpCol : aCol)
- rpCol->UpdateGrow( rArea, nGrowX, nGrowY );
+ for (auto& rpCol : aCol)
+ rpCol.UpdateGrow( rArea, nGrowX, nGrowY );
}
void ScTable::UpdateInsertTab( sc::RefUpdateInsertTabContext& rCxt )
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index f18bb9ed8ce5..ed6046dea2a0 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -1670,8 +1670,8 @@ CommentCaptionState ScTable::GetAllNoteCaptionsState(const ScRange& rRange, std:
void ScTable::GetUnprotectedCells( ScRangeList& rRangeList ) const
{
- for (auto pCol : aCol)
- pCol->GetUnprotectedCells(0, MAXROW, rRangeList);
+ for (auto& pCol : aCol)
+ pCol.GetUnprotectedCells(0, MAXROW, rRangeList);
}
bool ScTable::ContainsNotesInRange( const ScRange& rRange ) const
More information about the Libreoffice-commits
mailing list