diff options
Diffstat (limited to 'sc/source/core/data/table1.cxx')
-rw-r--r-- | sc/source/core/data/table1.cxx | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx index ad1a50ee3828..c10100d4777b 100644 --- a/sc/source/core/data/table1.cxx +++ b/sc/source/core/data/table1.cxx @@ -1681,14 +1681,14 @@ void ScTable::UpdateReference( void ScTable::UpdateTranspose( const ScRange& rSource, const ScAddress& rDest, ScDocument* pUndoDoc ) { - for ( SCCOL i=0; i<=MAXCOL; i++ ) - aCol[i].UpdateTranspose( rSource, rDest, pUndoDoc ); + for (ScColumn* pCol : GetColumnsRange(0, MAXCOL)) + pCol->UpdateTranspose( rSource, rDest, pUndoDoc ); } void ScTable::UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY ) { - for ( SCCOL i=0; i<=MAXCOL; i++ ) - aCol[i].UpdateGrow( rArea, nGrowX, nGrowY ); + for (ScColumn* pCol : GetColumnsRange(0, MAXCOL)) + pCol->UpdateGrow( rArea, nGrowX, nGrowY ); } void ScTable::UpdateInsertTab( sc::RefUpdateInsertTabContext& rCxt ) @@ -2383,4 +2383,10 @@ const ScConditionalFormatList* ScTable::GetCondFormList() const return mpCondFormatList.get(); } +ScColumnsRange ScTable::GetColumnsRange(SCCOL nColBegin, SCCOL nColEnd) const +{ + // because the range is inclusive, some code will pass nColEnd<nColBegin to indicate an empty range + return ScColumnsRange(aCol.begin() + nColBegin, nColEnd < nColBegin ? (aCol.begin() + nColBegin) : (aCol.begin() + nColEnd + 1)); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |