office-gobmx/external/mdds
Noel Grandin 3be3fb9baf tdf#126109 calc slow when replacing string to number
Normally, the answer to repeated erase(begin()) is to walk backwards
through the array.
However, sometimes (like here), doing so will mean that we end up
inserting at the front of a different array, which means we don't gain
anything.

So, store an extra field in the mdds block, which implements a kind
of very simple approximation of a circular array.

This gives me a 50% speedup for this bug.

This is the simplest possible thing that could work.
It could probably be made a lot more sophisticated in terms of not
wasting space.

Change-Id: I036349786896f28b617dfd0924f5743db6a57695
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135896
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-21 08:49:41 +02:00
..
Makefile
Module_mdds.mk
README
speedup-erase-begin.patch
UnpackedTarball_mdds.mk
use-after-free.patch

Multi-dimensional data structure (mdds) library, available from [https://gitlab.com/mdds/mdds].

mdds primarily provides data structures that are used by the calc
core.