sc/source/core/data/column3.cxx | 13 ++++++++----- sc/source/core/data/document10.cxx | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-)
New commits: commit 19c46727fd6a287cc3ec0417cbab922e611282c1 Author: Eike Rathke <er...@redhat.com> Date: Wed Oct 19 23:34:25 2016 +0200 sc-perf: SetFormulaCells: unnecessary number format check in clipboard/undo Change-Id: Ica7495e95700db2e6be1dd475ec450d8450364a4 diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 89aa5e0..b804260 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -1922,12 +1922,15 @@ bool ScColumn::SetFormulaCells( SCROW nRow, std::vector<ScFormulaCell*>& rCells // Detach all formula cells that will be overwritten. DetachFormulaCells(aPos, rCells.size()); - for (size_t i = 0, n = rCells.size(); i < n; ++i) + if (!pDocument->IsClipOrUndo()) { - SCROW nThisRow = nRow + i; - sal_uInt32 nFmt = GetNumberFormat(nThisRow); - if ((nFmt % SV_COUNTRY_LANGUAGE_OFFSET) == 0) - rCells[i]->SetNeedNumberFormat(true); + for (size_t i = 0, n = rCells.size(); i < n; ++i) + { + SCROW nThisRow = nRow + i; + sal_uInt32 nFmt = GetNumberFormat(nThisRow); + if ((nFmt % SV_COUNTRY_LANGUAGE_OFFSET) == 0) + rCells[i]->SetNeedNumberFormat(true); + } } std::vector<sc::CellTextAttr> aDefaults(rCells.size(), sc::CellTextAttr()); commit 5f01b29876da20299326b466d9596c4121ed2dec Author: Eike Rathke <er...@redhat.com> Date: Wed Oct 19 23:28:21 2016 +0200 sc-perf: StartAllListeners: bail out early in cliboard or undo document ... and do not attempt to execute the overhead for all columns in the range just to do nothing. Change-Id: I88d26895cf641e8c71d7ccdf5534de8008070e61 diff --git a/sc/source/core/data/document10.cxx b/sc/source/core/data/document10.cxx index 4d59838..8964999 100644 --- a/sc/source/core/data/document10.cxx +++ b/sc/source/core/data/document10.cxx @@ -469,6 +469,9 @@ void ScDocument::StartNeededListeners( const std::shared_ptr<const sc::ColumnSet void ScDocument::StartAllListeners( const ScRange& rRange ) { + if (IsClipOrUndo() || GetNoListening()) + return; + std::shared_ptr<sc::ColumnBlockPositionSet> pPosSet(new sc::ColumnBlockPositionSet(*this)); sc::StartListeningContext aStartCxt(*this, pPosSet); sc::EndListeningContext aEndCxt(*this, pPosSet); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits