diff options
authorMiklos Vajna <>2015-09-04 16:06:46 +0200
committerCaolán McNamara <>2015-09-14 10:24:16 +0000
commitffd7f291ef1daacc5f4d14e13594c94d3a438a1b (patch)
parent76b1c431637e993bc38af2e56197634864909f48 (diff)
tdf#92505 vcl: fix substituting missing glyphs
Commit a6b00d16eb27a5e7e31c721671001a909ecef960 (Related bnc#822625: Cache FontEntry with the original FontSelectPattern.) and the follow-up 16a62079018aea0e72636bdb00576487b4e830b9 (Oops, this reference can't be const., 2014-05-28) changed the font cache key, so that it's directly what was the argument to ImplFontCache::GetFontEntry(), which leads to missing glyphs in the bugdoc, e.g. the 4 check mark characters are rendered as a check mark only in the DejaVu Sans case on my machine, the other 3 cases result in placeholders. Fix the problem by changing back the key to aFontSelData, which is possibly modified in ImplFontCache::GetFontEntry() before used as a key. Change-Id: I80eb4ba0f986a10100b6ae421d1346f235ce83b7 (cherry picked from commit e047caf4bb461fb168d9fe08228c049938ca1698) Reviewed-on: Reviewed-by: Caolán McNamara <> Tested-by: Caolán McNamara <>
1 files changed, 2 insertions, 4 deletions
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index c7faaeffef53..0c07b97f60be 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -1239,7 +1239,6 @@ ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList,
ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList,
FontSelectPattern& aFontSelData )
- const FontSelectPattern aFontSelDataOrig(aFontSelData);
// check if a directly matching logical font instance is already cached,
// the most recently used font usually has a hit rate of >50%
ImplFontEntry *pEntry = NULL;
@@ -1326,9 +1325,8 @@ ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList,
- // Add the new entry to the cache with the original FontSelectPattern,
- // so that we can find it next time as a direct cache hit.
- maFontInstanceList[ aFontSelDataOrig ] = pEntry;
+ // add the new entry to the cache
+ maFontInstanceList[ aFontSelData ] = pEntry;
mpFirstEntry = pEntry;