[Libreoffice-commits] core.git: include/svl svl/source sw/source
Xisco Fauli (via logerrit)
logerrit at kemper.freedesktop.org
Thu Oct 1 18:55:36 UTC 2020
include/svl/undo.hxx | 2 +-
svl/source/undo/undo.cxx | 12 ++++--------
sw/source/core/undo/docundo.cxx | 6 ++++--
3 files changed, 9 insertions(+), 11 deletions(-)
New commits:
commit 0b3ff97d7d5a1e8471e494f4141165364203c192
Author: Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Thu Oct 1 16:46:11 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Thu Oct 1 20:54:53 2020 +0200
tdf#136728: Revert "tdf#136238 speed up deleting large cross page table"
This reverts commit da5c289a9cae5d914937f235694fd5b0cb92547f.
Change-Id: Ic6a77ec2cd3b502fb4e94159a0424340850590df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103665
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/include/svl/undo.hxx b/include/svl/undo.hxx
index 0847d89811c0..2757967aaee4 100644
--- a/include/svl/undo.hxx
+++ b/include/svl/undo.hxx
@@ -291,7 +291,7 @@ public:
/** removes the oldest Undo actions from the stack
*/
- void RemoveOldestUndoActions(sal_Int32 nNumToDelete);
+ void RemoveOldestUndoAction();
void dumpAsXml(xmlTextWriterPtr pWriter) const;
diff --git a/svl/source/undo/undo.cxx b/svl/source/undo/undo.cxx
index 46c785557416..b678fba83948 100644
--- a/svl/source/undo/undo.cxx
+++ b/svl/source/undo/undo.cxx
@@ -1123,22 +1123,18 @@ bool SfxUndoManager::HasTopUndoActionMark( UndoStackMark const i_mark )
}
-void SfxUndoManager::RemoveOldestUndoActions(sal_Int32 nNumToDelete)
+void SfxUndoManager::RemoveOldestUndoAction()
{
UndoManagerGuard aGuard( *m_xData );
- if ( ImplIsInListAction_Lock() && ( m_xData->pUndoArray->nCurUndoAction == 1 ) )
+ if ( IsInListAction() && ( m_xData->pUndoArray->nCurUndoAction == 1 ) )
{
assert(!"SfxUndoManager::RemoveOldestUndoActions: cannot remove a not-yet-closed list action!");
return;
}
- while (nNumToDelete>0 && !m_xData->pUndoArray->maUndoActions.empty())
- {
- aGuard.markForDeletion( m_xData->pUndoArray->Remove( 0 ) );
- --m_xData->pUndoArray->nCurUndoAction;
- --nNumToDelete;
- }
+ aGuard.markForDeletion( m_xData->pUndoArray->Remove( 0 ) );
+ --m_xData->pUndoArray->nCurUndoAction;
ImplCheckEmptyActions();
}
diff --git a/sw/source/core/undo/docundo.cxx b/sw/source/core/undo/docundo.cxx
index 8f870f347d6c..6e350836fc20 100644
--- a/sw/source/core/undo/docundo.cxx
+++ b/sw/source/core/undo/docundo.cxx
@@ -537,8 +537,10 @@ void UndoManager::AddUndoAction(std::unique_ptr<SfxUndoAction> pAction, bool bTr
}
// if the undo nodes array is too large, delete some actions
- if (UNDO_ACTION_LIMIT < GetUndoNodes().Count())
- RemoveOldestUndoActions(GetUndoNodes().Count() - UNDO_ACTION_LIMIT);
+ while (UNDO_ACTION_LIMIT < GetUndoNodes().Count())
+ {
+ RemoveOldestUndoAction();
+ }
}
namespace {
More information about the Libreoffice-commits
mailing list