[pango/kill-ft-face] fixup! Reimplement PangoCoverage on top of hb_set_t



commit ba78cfa4d153079e5926d15dc57d560e5631a742
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Jul 11 20:02:43 2019 -0400

    fixup! Reimplement PangoCoverage on top of hb_set_t
    
    Keep using FcCharSet for now, to avoid opening fonts.

 pango/pangofc-fontmap.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c
index 44317987..f6c9dae2 100644
--- a/pango/pangofc-fontmap.c
+++ b/pango/pangofc-fontmap.c
@@ -1939,6 +1939,7 @@ _pango_fc_font_map_get_coverage (PangoFcFontMap *fcfontmap,
                                 PangoFcFont    *fcfont)
 {
   PangoFcFontFaceData *data;
+  FcCharSet *charset;
 
   data = pango_fc_font_map_get_font_face_data (fcfontmap, fcfont->font_pattern);
   if (G_UNLIKELY (!data))
@@ -1946,15 +1947,14 @@ _pango_fc_font_map_get_coverage (PangoFcFontMap *fcfontmap,
 
   if (G_UNLIKELY (data->coverage == NULL))
     {
-      hb_face_t *hb_face;
-      hb_set_t *chars = hb_set_create ();
-
-      hb_face = pango_fc_font_map_get_hb_face (fcfontmap, fcfont);
-      hb_face_collect_unicodes (hb_face, chars);
-
-      data->coverage = pango_coverage_new_with_chars (chars);
+      /*
+       * Pull the coverage out of the pattern, this
+       * doesn't require loading the font
+       */
+      if (FcPatternGetCharSet (fcfont->font_pattern, FC_CHARSET, 0, &charset) != FcResultMatch)
+        return NULL;
 
-      hb_set_destroy (chars);
+      data->coverage = _pango_fc_font_map_fc_to_coverage (charset);
     }
 
   return pango_coverage_ref (data->coverage);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]