evas font: revise evas_font_init/reinit functions
authorYoungbok Shin <youngb.shin@samsung.com>
Sat, 21 Jan 2017 10:00:46 +0000 (19:00 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 21 Jan 2017 10:00:46 +0000 (19:00 +0900)
Summary:
The static flag in evas_font_init() was not useful.
It could be replaced by checking address of "fc_config".
FcInitReinitialize() function was not necessary to reload
configure and font files in Evas. It would be meaningful
when only Evas use Fontconfig's function without own "fc_config".
To reload "fc_config", calling FcInitLoadConfigAndFonts() is enough.
And there is no need to load "fc_config" from evas_font_reinit()
when "fc_config" is not prepared.

Test Plan: N/A

Reviewers: herdsman, raster, tasn, cedric, woohyun

Subscribers: jpeg

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

src/lib/evas/canvas/evas_font_dir.c

index 8d36049..682f80f 100644 (file)
@@ -59,12 +59,9 @@ static FcConfig *fc_config = NULL;
 static void
 evas_font_init(void)
 {
-   static Eina_Bool fc_init = EINA_FALSE;
-   if (fc_init)
-      return;
-   fc_init = EINA_TRUE;
 #ifdef HAVE_FONTCONFIG
-   fc_config = FcInitLoadConfigAndFonts();
+   if (!fc_config)
+     fc_config = FcInitLoadConfigAndFonts();
 #endif
 }
 
@@ -1531,12 +1528,13 @@ evas_font_reinit(void)
    Eina_List *l;
    char *path;
 
-   if (fc_config) FcConfigDestroy(fc_config);
-
-   FcInitReinitialize();
-   fc_config = FcInitLoadConfigAndFonts();
+   if (fc_config)
+     {
+        FcConfigDestroy(fc_config);
+        fc_config = FcInitLoadConfigAndFonts();
 
-   EINA_LIST_FOREACH(global_font_path, l, path)
-      FcConfigAppFontAddDir(fc_config, (const FcChar8 *) path);
+        EINA_LIST_FOREACH(global_font_path, l, path)
+           FcConfigAppFontAddDir(fc_config, (const FcChar8 *) path);
+     }
 #endif
 }