derekf pushed a commit to branch master.

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

commit 9201fc5a65368a40234977c3c176a806655afea2
Author: Youngbok Shin <youngb.s...@samsung.com>
Date:   Fri Dec 7 06:27:13 2018 +0000

    evas: remove memory leaks from deleted Textblock objects
    
    Even if a object is deleted, its render_pre function could be called.
    Especially, Evas Textblock is calling relayout() function if there are
    any changes. In relayout() function, it creates at least one paragraph
    and one line. Normally, all of paragraphs and its line should be removed
    when Evas Textblock object is deleted. But, paragraphs and lines which are
    created after deleting its object never be free'd.
    
    @fix
    Differential Revision: https://phab.enlightenment.org/D7427
---
 src/lib/evas/canvas/evas_object_textblock.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index b33cb6f5eb..0a79e30472 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -6788,6 +6788,8 @@ _relayout_if_needed(const Evas_Object *eo_obj, 
Efl_Canvas_Text_Data *o)
    ASYNC_BLOCK;
    Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, 
EFL_CANVAS_OBJECT_CLASS);
 
+   if (obj->delete_me) return EINA_TRUE;
+
    /* XXX const */
    evas_object_textblock_coords_recalc((Evas_Object *)eo_obj, obj, 
obj->private_data);
    if (o->formatted.valid)

-- 


Reply via email to