Hi Michael, On Monday, October 05, 2020 06:57 PM IST, Michael Meeks <michael.meeks@xxxxxxxxxxxxx> 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 directly. Thanks, Dennis _______________________________________________ LibreOffice mailing list LibreOffice@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/libreoffice