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) --