From: Jean-Philippe Andre Date: Tue, 4 Jun 2013 10:44:52 +0000 (+0900) Subject: evas/cserve2: fix memory leak when changing font hinting. X-Git-Tag: submit/efl/20131015.063327~778 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e973be52f90df7c620ad5c0010570cd01aa92739;p=platform%2Fupstream%2Fefl.git evas/cserve2: fix memory leak when changing font hinting. Signed-off-by: Cedric Bail --- diff --git a/src/lib/evas/common/evas_font_load.c b/src/lib/evas/common/evas_font_load.c index 97dfb17672..6a94c9cf0c 100644 --- a/src/lib/evas/common/evas_font_load.c +++ b/src/lib/evas/common/evas_font_load.c @@ -671,6 +671,15 @@ evas_common_font_free(RGBA_Font *fn) free(fn); } +static void +_evas_common_font_rehint(RGBA_Font_Int *fi, Font_Hint_Flags hinting) +{ + if (fi->fash) + fi->fash->freeme(fi->fash); + fi->fash = NULL; + fi->hinting = hinting; +} + EAPI void evas_common_font_hinting_set(RGBA_Font *fn, Font_Hint_Flags hinting) { @@ -681,6 +690,8 @@ evas_common_font_hinting_set(RGBA_Font *fn, Font_Hint_Flags hinting) fn->hinting = hinting; EINA_LIST_FOREACH(fn->fonts, l, fi) { + if (fi->hinting != fn->hinting) + _evas_common_font_rehint(fi, fn->hinting); fi->hinting = fn->hinting; } }