diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-09-05 09:06:10 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-09-10 15:40:22 +0200 |
commit | 6af4ff17c131b01ea19a78d6963b72815bbb3103 (patch) | |
tree | b399d7e3c3009cad3774c41ab719e6714dc8efcc /sc/source/ui/inc/searchresults.hxx | |
parent | 9b15e86c0a31926f0a5c0b5c5f6f0db639f60c3f (diff) |
tdf#150749 Find and replace on very large sheet
cp-22.05.6-1
This requires 2 fixes
(*) First, we are deleting from the front of a block in the mdds
storage, so apply a similar patch to mdds to the previous improvement,
(*) Then, we end up with an O(n^2) situation in ScRangesList::Join.
But we are only displaying this data, and in fact, we only display the
first 1000 ranges anyway, so just clamp the list to 1000 entries, and
pass a flag up to the dialog so that we can report that we stopped
counting.
(*) I had to tweak the testSharedStringPool unit test, since
we are not actually clearing the underlying mdds storage, the
reference counts do not drop until we have removed all the
elements in that block of mdds storage (because then the entire
block is destructed, including the not-yet destructed elements)
Change-Id: I2c998f81dfb46453a48fce1254fd253d299d12b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139400
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit 462053a26070db6e7c8ec818c816d64d1d82782b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139424
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'sc/source/ui/inc/searchresults.hxx')
-rw-r--r-- | sc/source/ui/inc/searchresults.hxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sc/source/ui/inc/searchresults.hxx b/sc/source/ui/inc/searchresults.hxx index c10e6014342a..61cfc520b4ff 100644 --- a/sc/source/ui/inc/searchresults.hxx +++ b/sc/source/ui/inc/searchresults.hxx @@ -37,7 +37,9 @@ public: virtual void Close() override; - void FillResults( ScDocument& rDoc, const ScRangeList& rMatchedRanges, bool bCellNotes, bool bEmptyCells ); + void FillResults( ScDocument& rDoc, const ScRangeList& rMatchedRanges, + bool bCellNotes, bool bEmptyCells, + bool bMatchedRangesWereClamped); }; class SearchResultsDlgWrapper : public SfxChildWindow |