aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoungbok Shin <youngb.shin@samsung.com>2018-12-07 06:27:13 +0000
committerDerek Foreman <derek.foreman.samsung@gmail.com>2019-01-10 13:05:17 -0600
commit9201fc5a65368a40234977c3c176a806655afea2 (patch)
tree199a67c505f7f9aad1d494e512aafa9f3b967735
parentefl_ui_win: make win work for evas_norender (diff)
downloadefl-9201fc5a65368a40234977c3c176a806655afea2.tar.gz
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
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c2
1 files changed, 2 insertions, 0 deletions
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)