Hi Caolan,
It seems you're the expert in this area :-) I was wondering whether you
could help look at / review my tentative fix here:
http://cgit.freedesktop.org/libreoffice/core/commit/?id=dda3686acde4911f70f07724247e822f8b3dbd90
Pwrt. a back-port to libreoffice-4-1 it makes a MAB disappear and turn
valgrind clean which is encouraging, but - ... I'm not happy with my
understanding here.
In particular - the difference between the ScreenFontCache and other
font caches is unclear to me, it's also unclear why we need to have
(potentially) a different font cache on each window / frame, and do all
this weirdo recursion there - surely a single, global fontcache would
suffice ?
Either way - help appreciated; it seems from the referenced bug that we
carefully re-load lists of fonts in:
void OutputDevice::ImplUpdateFontData( bool bNewFontLists )
...
mpGraphics->GetDevFontList( mpFontList );
And then (before the re-ordering above) proceed to call
GlyphCache::ClearFontCache and delete them all. When done in the reverse
order life is better, but - then why so many caches ? why is lifecycle
of that so contorted ? ;-) etc. ?
Thoughts much appreciated for -4-1.
Thanks,
Michael.
--
michael.meeks at suse.com <><, Pseudo Engineer, itinerant idiot