diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2018-07-10 11:07:53 +0900 |
---|---|---|
committer | SangHyeon Jade Lee <sh10233.lee@samsung.com> | 2018-07-12 11:34:47 +0900 |
commit | a9a987077be7e64f93a2a824f9b936d593b4ff2f (patch) | |
tree | 3147288ebcad5335b9e8952695d2f6bc8143d96e | |
parent | 07855c276dc8d550b4d3b6c5c17c8090c3d840d6 (diff) | |
download | efl-a9a987077be7e64f93a2a824f9b936d593b4ff2f.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 |