diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2018-07-10 11:07:53 +0900 |
---|---|---|
committer | Hermet Park <hermetpark@gmail.com> | 2018-07-10 11:07:53 +0900 |
commit | 78cd61034185f07779d70163a38f5ffdffe5507b (patch) | |
tree | 485092b47c53a0d9a4e73975efe0f6d281f1b47c | |
parent | 53fa0c1520eb070ca8b29611fde92c0036a788ee (diff) | |
download | efl-78cd61034185f07779d70163a38f5ffdffe5507b.tar.gz |
edje: clean up internal objects during invalidate
Summary:
these objects are destroyed when invalidate is called as a result of the
evas smart object class destroying the smart object at this time
ref D6222
Reviewers: bu5hm4n, devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6540
-rw-r--r-- | src/lib/edje/edje_smart.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 29d042c40d..a3791a041c 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -54,9 +54,9 @@ _efl_canvas_layout_efl_object_invalidate(Eo *obj, Edje *ed) { _edje_file_callbacks_del(ed, NULL); - efl_invalidate(efl_super(obj, MY_CLASS)); - - //invalidate is done, this means the legacy evas deletion event is called. + /* after invalidate is called, all internal objects are destroyed as a result + * of being unparented. do cleanups here to avoid leaking + */ for (int i = 0; i < ed->table_parts_size; ++i) { Edje_Real_Part *rp = ed->table_parts[i]; @@ -74,6 +74,8 @@ _efl_canvas_layout_efl_object_invalidate(Eo *obj, Edje *ed) break; } } + + efl_invalidate(efl_super(obj, MY_CLASS)); } EOLIAN static void |