[Libreoffice-commits] core.git: sc/source
Luboš Luňák (via logerrit)
logerrit at kemper.freedesktop.org
Thu May 16 12:41:40 UTC 2019
sc/source/core/data/table5.cxx | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
New commits:
commit 4c4c5baaf017b2861daf039de179eaa7303b13b0
Author: Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Thu May 16 12:43:49 2019 +0200
Commit: Luboš Luňák <l.lunak at collabora.com>
CommitDate: Thu May 16 14:40:59 2019 +0200
cache mdds position in ScTable::InvalidateTextWidth (tdf#108298)
Again, normally starts container search from the beginning, so without
caching this is quadratic.
Change-Id: I3bb1ff40a326eb46780e45d3e3934773a7b77d06
Reviewed-on: https://gerrit.libreoffice.org/72406
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx
index a32c27ae10bd..f4ecec8880a4 100644
--- a/sc/source/core/data/table5.cxx
+++ b/sc/source/core/data/table5.cxx
@@ -1205,12 +1205,14 @@ void ScTable::InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* p
for (SCCOL nCol = nCol1; nCol <= nCol2; ++nCol)
{
ScColumnTextWidthIterator aIter(aCol[nCol], nRow1, nRow2);
+ sc::ColumnBlockPosition blockPos; // cache mdds position
+ InitColumnBlockPosition( blockPos, nCol );
for (; aIter.hasCell(); aIter.next())
{
SCROW nRow = aIter.getPos();
aIter.setValue(TEXTWIDTH_DIRTY);
- ScRefCellValue aCell = aCol[nCol].GetCellValue(nRow);
+ ScRefCellValue aCell = aCol[nCol].GetCellValue(blockPos, nRow);
if (aCell.isEmpty())
continue;
More information about the Libreoffice-commits
mailing list