From 65be73c58f91a768c7f7228e3e83863e90a92ade Mon Sep 17 00:00:00 2001 From: Youngbok Shin Date: Sat, 21 Jan 2017 19:00:46 +0900 Subject: [PATCH] evas font: revise evas_font_init/reinit functions 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 | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/lib/evas/canvas/evas_font_dir.c b/src/lib/evas/canvas/evas_font_dir.c index 8d36049445..682f80ff46 100644 --- a/src/lib/evas/canvas/evas_font_dir.c +++ b/src/lib/evas/canvas/evas_font_dir.c @@ -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); + if (fc_config) + { + FcConfigDestroy(fc_config); + fc_config = FcInitLoadConfigAndFonts(); - FcInitReinitialize(); - 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 }