diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-09-10 14:27:55 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-09-10 16:02:49 +0200 |
commit | da5c289a9cae5d914937f235694fd5b0cb92547f (patch) | |
tree | 16c6eeeaad8b7c8d2589317637fcc4e4ed1d43dc /include/svl | |
parent | 6d790ba76991be3a01f40636fa3b9e220a8d73d8 (diff) |
tdf#136238 speed up deleting large cross page table
Goes from more than 30s to less than 1s on my pc.
We were getting stuck inside the loop in sw::UndoManager::AddUndoAction,
because the RemoveOldestUndoAction was continually doing nothing because
it was hitting the
if ( IsInListAction()
{
assert(!"SfxUndoManager::RemoveOldestUndoActions: cannot remove a
not-yet-closed list action!");
return;
}
code.
Which means that there is some bug here, but I'm not sure what. We are
deep inside the delete logic at that point, and it doesn't seem
unreasonable to opportunistically delete some of the UNDO list at that
point.
So the real fix is just the conversion from a while loop to an if-check.
Change-Id: Ie2707009dd6574b996421f67d952ab9fdaaaf6aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102378
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include/svl')
-rw-r--r-- | include/svl/undo.hxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/svl/undo.hxx b/include/svl/undo.hxx index 2757967aaee4..0847d89811c0 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 RemoveOldestUndoAction(); + void RemoveOldestUndoActions(sal_Int32 nNumToDelete); void dumpAsXml(xmlTextWriterPtr pWriter) const; |