summaryrefslogtreecommitdiff
path: root/linguistic/workben
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-05-28 11:06:23 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-05-28 16:41:26 +0200
commit7ac940d278f9bb3fbb1988a74dfa4909960bd998 (patch)
tree68228a3de97842d00d67217b1e7736a6db94f355 /linguistic/workben
parent7376a47680b65cbdfd747a736f288e06f51f7f2d (diff)
tdf#125372 writer, file with lots of hints very slow to open, part3
There were O(n^2) issues all over the places where we walk these lists. This takes the opening time from 10m+ to 4m. (*) Invalidate the sorting on a much less aggressive basis, by having the SwTextAttr objects tell the SwpHints object when start and end pos changes (*) Add a bool field to indicate when the maps become unsorted, so we can resort them only when we actually need sorted access (*) Add an API for walking the list of SwTextAttr* without triggering sorting, which is particularly important when the RedlineManager starts moving things around. (*) Add various asserts to catch code that tries to iterate over these sorted lists but triggers resorting during the loop. I also moved some of the logic around so that instead of update hint delete hint insert hint it now goes delete hint update hint insert hint which means that the needToSort flag does not get set because the hint is disconnected while it is being updated. Change-Id: Ie153ddafc9ef9e3470d588db2be2457c676232a8 Reviewed-on: https://gerrit.libreoffice.org/73090 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'linguistic/workben')
0 files changed, 0 insertions, 0 deletions