Re: Calc / spell check cache

Dennis Francis dennis.francis at
Sun Oct 11 12:22:08 UTC 2020

Hi Michael,

On Monday, October 05, 2020 06:57 PM IST, Michael Meeks <michael.meeks at> wrote: 
> >   #1 uses raw-pointer to rtl_uString as key.
> 	I guess that would work, we just need to be a bit careful we need to> make sure we clear this cache before we call:
> 	void SharedStringPool::purge()
> 	In ScDocument::~ScDocument - I think.	

The spellcheck-cache is housed in ScGridWindow::mpSpellCheckContext and from
what I see in core desktop, the ScGridWindow and ScDocument ctor/dtor calls
are paired. Surprisingly in online, I do not see any of these destructors
getting called even on Ctrl+C of loolwsd process - setup related?

> >   #2 uses cell-address as key.
> 	Does the EditTextObject hold and cache its own spelling status ?

Yes, I believe its implementation already has a member to store results in some
form and as far as I can see they are not getting used in Calc. But to limit
their storage and possibly with minimal impact on the visible areas of the
active views/users (for cases like auto-fill "down" a large number of rows
from a few cells/columns with inline formatting etc), we still need some
map/set to remember those cells. By storing them in the cache, we can do this

More information about the LibreOffice mailing list