herdsman pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=cafe84a2c2eeffe8c252d8988c7b6e5fcfe9f2c5

commit cafe84a2c2eeffe8c252d8988c7b6e5fcfe9f2c5
Author: Daniel Hirt <hirt.da...@gmail.com>
Date:   Mon Jul 16 00:35:44 2018 +0300

    Evas text textblock: call evas_font_free even on null fonts
    
    A null font set can potentially be stored and passed on. There is no
    specific fallback in our codebase to roll-back if something like that
    occurs.
    
    This fixes a case where an entry of a null font was not removed from the
    fonts_cache and was leaked to subsequent tests (the null font entry was
    not removed from the fonts_cache).
    
    Note that this was only apparent when EFL was built with
    `--disable-fontconfig`, likely due to fontconfig succeeding to always
    retrieve some non-null font.
    
    @fix
---
 src/lib/evas/canvas/evas_object_text.c      | 9 +++------
 src/lib/evas/canvas/evas_object_textblock.c | 2 +-
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_text.c 
b/src/lib/evas/canvas/evas_object_text.c
index 82be722deb..315b7ce015 100644
--- a/src/lib/evas/canvas/evas_object_text.c
+++ b/src/lib/evas/canvas/evas_object_text.c
@@ -433,11 +433,8 @@ _evas_text_font_reload(Eo *eo_obj, Evas_Text_Data *o)
      }
 
    /* DO IT */
-   if (o->font)
-     {
-        evas_font_free(o->font);
-        o->font = NULL;
-     }
+   evas_font_free(o->font);
+   o->font = NULL;
 
    o->font = evas_font_load(obj->layer->evas->font_path,
                             obj->layer->evas->hinting,
@@ -1656,7 +1653,7 @@ evas_object_text_free(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj)
    if (o->cur.source) eina_stringshare_del(o->cur.source);
    if (o->bidi_delimiters) eina_stringshare_del(o->bidi_delimiters);
    if (o->cur.text) free(o->cur.text);
-   if (o->font && obj->layer && obj->layer->evas)
+   if (obj->layer && obj->layer->evas)
       evas_font_free(o->font);
    o->font = NULL;
    o->cur.utf8_text = NULL;
diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 652ac3e631..f523f131e9 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -4575,7 +4575,7 @@ _format_finalize(Evas_Object *eo_obj, 
Evas_Object_Textblock_Format *fmt)
                                    fmt->font.source,
                                    (int)(((double) fmt->font.size) * 
obj->cur->scale),
                                    fmt->font.bitmap_scalable);
-   if (of) evas_font_free(of);
+   evas_font_free(of);
 }
 
 static Efl_Canvas_Text_Filter_Program *

-- 


Reply via email to