diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-12-05 14:06:06 +0100 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-12-19 18:54:17 +0100 |
commit | 08009002625ec20788d0c6d55aaa32aeac416753 (patch) | |
tree | 237f995c79da14c4c640661458efc5761b39352b /sc | |
parent | 7abb319821e641599f92e5f4ad2d7c0e377851fa (diff) |
tdf#154339: do not cache GetCellArea results for now
Partially revert 0a55aa8ba38aea56a2bce1504fd687e510f66b9d
"calc: cache GetCellArea results"
Change-Id: I371a56f64afe541d9a194e6435fda3fb27bc43ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160349
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 01473b85a218b303a5674c4c3c24177c938d4e69)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160946
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/table.hxx | 9 | ||||
-rw-r--r-- | sc/qa/unit/ucalc.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/table1.cxx | 19 | ||||
-rw-r--r-- | sc/source/ui/unoobj/docuno.cxx | 9 |
4 files changed, 6 insertions, 33 deletions
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 3bf61e701c16..78fdbc6fabdf 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -180,12 +180,6 @@ private: SCROW nRepeatStartY; SCROW nRepeatEndY; - // last used col and row - bool mbCellAreaDirty; - bool mbCellAreaEmpty; - SCCOL mnEndCol; - SCROW mnEndRow; - // Standard row height for this sheet - benefits XLSX because default height defined per sheet sal_uInt16 mnOptimalMinRowHeight; // in Twips @@ -625,8 +619,7 @@ public: void InvalidateTableArea(); void InvalidatePageBreaks(); - void InvalidateCellArea() { mbCellAreaDirty = true; } - bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ); // FALSE = empty + bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow, bool bCalcHiddens = false) const; bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes, bool bCalcHiddens = false) const; bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow, diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index a3e2d2ddd567..c75742eabdfc 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -43,7 +43,6 @@ #include <columnspanset.hxx> #include <editable.hxx> -#include <table.hxx> #include <tabprotection.hxx> #include <undomanager.hxx> @@ -5298,7 +5297,6 @@ CPPUNIT_TEST_FIXTURE(Test, testAreasWithNotes) m_pDoc->SetString(0, 3, 0, "Some Text"); m_pDoc->SetString(3, 3, 0, "Some Text"); - m_pDoc->FetchTable(0)->InvalidateCellArea(); dataFound = m_pDoc->GetDataStart(0,col,row); diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx index c9002d096854..93d023f96246 100644 --- a/sc/source/core/data/table1.cxx +++ b/sc/source/core/data/table1.cxx @@ -247,10 +247,6 @@ ScTable::ScTable( ScDocument& rDoc, SCTAB nNewTab, const OUString& rNewName, nRepeatEndX( SCCOL_REPEAT_NONE ), nRepeatStartY( SCROW_REPEAT_NONE ), nRepeatEndY( SCROW_REPEAT_NONE ), - mbCellAreaDirty( true ), - mbCellAreaEmpty( true ), - mnEndCol( -1 ), - mnEndRow( -1 ), mnOptimalMinRowHeight(0), mpRowHeights( static_cast<ScFlatUInt16RowSegments*>(nullptr) ), mpHiddenCols(new ScFlatBoolColSegments(rDoc.MaxCol())), @@ -519,15 +515,8 @@ void ScTable::SetOptimalHeightOnly( delete pProgress; } -bool ScTable::GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) +bool ScTable::GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const { - if (!mbCellAreaDirty) - { - rEndCol = mnEndCol; - rEndRow = mnEndRow; - return !mbCellAreaEmpty; - } - bool bFound = false; SCCOL nMaxX = 0; SCROW nMaxY = 0; @@ -571,10 +560,8 @@ bool ScTable::GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) } } - mnEndCol = rEndCol = nMaxX; - mnEndRow = rEndRow = nMaxY; - mbCellAreaEmpty = !bFound; - mbCellAreaDirty = false; + rEndCol = nMaxX; + rEndRow = nMaxY; return bFound; } diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index 85c179373788..c906f39336f5 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -3266,7 +3266,7 @@ bool ScModelObj::HasChangesListeners() const namespace { -void lcl_dataAreaInvalidation(ScDocument& rDocument, ScModelObj* pModel, +void lcl_dataAreaInvalidation(ScModelObj* pModel, const ScRangeList& rRanges, bool bInvalidateDataArea, bool bExtendDataArea) { @@ -3293,10 +3293,6 @@ void lcl_dataAreaInvalidation(ScDocument& rDocument, ScModelObj* pModel, bool bInvalidate = bAreaExtended || bInvalidateDataArea; if ( bInvalidate ) { - ScTable* pTab = rDocument.FetchTable( nTab ); - if ( pTab ) - pTab->InvalidateCellArea(); - if ( comphelper::LibreOfficeKit::isActive() ) SfxLokHelper::notifyPartSizeChangedAllViews( pModel, nTab ); } @@ -3318,8 +3314,7 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r if ( pDocShell ) { - ScDocument& rDocument = pDocShell->GetDocument(); - lcl_dataAreaInvalidation(rDocument, this, rRanges, bInvalidateDataArea, bExtendDataArea); + lcl_dataAreaInvalidation(this, rRanges, bInvalidateDataArea, bExtendDataArea); // check if we were called only to update data area if (bIsDataAreaInvalidateType || bIsDataAreaExtendType) |