[Libreoffice] fixing the old+new opensymbol available and startup speedup

Caolán McNamara caolanm at redhat.com
Fri Apr 8 06:20:05 PDT 2011


So, for https://bugs.freedesktop.org/show_bug.cgi?id=30729 where we use
the possibly older "system" opensymbol if there is one, where system is
FcSetSystem and refers to anything in /usr/share/fonts + ~/.fonts
instead of the "local" new FcSetApplication bundled one which causes
trouble because the new one has glyphs the old one doesn't I see that...

a) we had a duplicate-font detection already
b) but it only checked within a FcFontSet so it would fix the case that
there was 2+ "system" ones, or 2+ "local" ones, but not if there was 1
in "system" and 1 in "local"
c) it simply decided that the first one found was the winner
d) it's horribly horribly slow to find a duplicate with Fc[Set]FontMatch
because that does a lot more than we need

http://cgit.freedesktop.org/libreoffice/libs-gui/commit/?id=7db45b251adf8588624fee439df3ae0629c6ac4f

We now sort the fonts by their fontname followed by their fontversion
and only deploy the relatively slow duplicate detection if the previous
font had the same name and skip going near the extra Fc[Set]FontMatch,
this does the right thing for me, and is massively slow.

It it turns out to be somehow cocked up and needs to be reverted, I
suggest the original cure for duplicate fonts be ditched anyway because
of the startup lag it gives with loads of fonts installed.

C.



More information about the LibreOffice mailing list