diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-12-19 21:03:53 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-12-22 02:01:15 +0100 |
commit | bb51791ae49ecded0f618b4534893adb8fcf917e (patch) | |
tree | 51c6fd4676455562fc22c1212ee6a66cfff83114 /vcl/inc/outdev.h | |
parent | cec68bceba9aa1e984d74897fcd7bf4db702d14b (diff) |
fdo#38090: vcl: remove ImplFontCache::maFontNameList:
The font cache in VCL returns different fonts for identical parameters,
which causes layout differences in Writer.
first we search the font with language 1054:
debug: XXX 0x2103950 add to maFontNameList: TH SarabunPSK->waree
p maFontNameList
$9 = boost::unordered_map with 1 elements = {
["TH SarabunPSK"] = "waree"
debug: XXX 0x2103950 found in maFontNameList: TH SarabunPSK->waree
in this very same invocation the "waree" is then rerouted to Deja Vu
(which can only be because it was called with language 1033):
debug: XXX 0x2103950 add to maFontNameList: TH SarabunPSK->dejavusans
p maFontNameList
$11 = boost::unordered_map with 1 elements = {
["TH SarabunPSK"] = "dejavusans"
}
debug: XXX 0x2103950 found in maFontNameList: TH SarabunPSK->dejavusans
- the selection of different fonts happens in
FcPreMatchSubstititution::FindFontSubstitute.
- we never get a direct cache hit from maFontInstanceList because there
are some differences like WIDTH_DONTKNOW, and the maSearchName
- the first time a font is searched, it ends up in maFontInstanceList
- the second time a font is searched, it may end up in maFontNameList,
which maps _only_ based on the name (appears to be an invalid optimization)
- once we have TH SarabunPSK->dejavusans in maFontNameList we can never
select the other one because apparently dejavusans covers all languages
Change-Id: Ibd73de88d8fc3b6e1319eb34c261e55ea217a988
Diffstat (limited to 'vcl/inc/outdev.h')
-rw-r--r-- | vcl/inc/outdev.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/vcl/inc/outdev.h b/vcl/inc/outdev.h index a37f2a958074..20c1d36f4f14 100644 --- a/vcl/inc/outdev.h +++ b/vcl/inc/outdev.h @@ -210,10 +210,6 @@ private: typedef ::boost::unordered_map<FontSelectPattern,ImplFontEntry*,IFSD_Hash,IFSD_Equal > FontInstanceList; FontInstanceList maFontInstanceList; - // cache of recently requested font names vs. selected font names - typedef ::boost::unordered_map<String,String,FontNameHash> FontNameList; - FontNameList maFontNameList; - public: ImplFontCache( bool bPrinter ); ~ImplFontCache(); |