Grow or shrink a matrix formula's declared dimensions to match its interpreted result size. With this, clearing a blocker lets the array spill across its full range; shrinking the source data removes the stale trailing cells. Blocking an already-expanded array collapses it back to the origin with #SPILL!. Deferred resize queue: inserting or deleting cells inline from Interpret (or during grid-repaint iteration) would invalidate the caller's iterator. Queue resizes in the document and drain them from safe points, guarded by a MatrixResizeGuard helper around each cell-iteration scope. Change-Id: I74376427e707fd84c36034fe6a64105e4a5f74fa Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1817 Tested-by: Jenkins CPCI <releng@collaboraoffice.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 76b6825e4d237869cb32889b250277be693a2c5f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205686 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Formula Helper Code
Contains parts of the formula parser used outside LibreOffice Calc code that has been pulled out from Calc's formula parser code.
Also contains some functions that are needed by code in both sc and
scaddins. Located here just for convenience. So sue me.