[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source

Miklos Vajna vmiklos at collabora.co.uk
Mon Sep 14 03:24:42 PDT 2015


 vcl/source/outdev/font.cxx |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

New commits:
commit ffd7f291ef1daacc5f4d14e13594c94d3a438a1b
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Sep 4 16:06:46 2015 +0200

    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: https://gerrit.libreoffice.org/18561
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index c7faaef..0c07b97 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,
         }
 #endif
 
-        // 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;


More information about the Libreoffice-commits mailing list