evas font: check returned value of FcPatternGet function
authorYoungbok Shin <youngb.shin@samsung.com>
Fri, 29 Sep 2017 06:16:21 +0000 (15:16 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 29 Sep 2017 06:16:21 +0000 (15:16 +0900)
Summary:
Evas should add font when only FcPatternGet function gives matched result.
@fix

Test Plan: N/A

Reviewers: raster, cedric, herdsman, jpeg

Differential Revision: https://phab.enlightenment.org/D5236

src/lib/evas/canvas/evas_font_dir.c

index 6514b0f..e120f68 100644 (file)
@@ -244,14 +244,15 @@ _evas_load_fontconfig(Evas_Font_Set *font, Evas *eo_evas, FcFontSet *set, int si
    /* Do loading for all in family */
    for (i = 0; i < set->nfont; i++)
      {
-       FcValue filename;
+        FcValue filename;
 
-       FcPatternGet(set->fonts[i], FC_FILE, 0, &filename);
-
-       if (font)
-         evas->engine.func->font_add(_evas_engine_context(evas), font, (char *)filename.u.s, size, wanted_rend, bitmap_scalable);
-       else
-         font = evas->engine.func->font_load(_evas_engine_context(evas), (char *)filename.u.s, size, wanted_rend, bitmap_scalable);
+        if (FcPatternGet(set->fonts[i], FC_FILE, 0, &filename) == FcResultMatch)
+          {
+             if (font)
+               evas->engine.func->font_add(_evas_engine_context(evas), font, (char *)filename.u.s, size, wanted_rend, bitmap_scalable);
+             else
+               font = evas->engine.func->font_load(_evas_engine_context(evas), (char *)filename.u.s, size, wanted_rend, bitmap_scalable);
+          }
      }
 
    return font;