summaryrefslogtreecommitdiff
path: root/src/lib/edje/edje_smart.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-07-10 11:07:53 +0900
committerHermet Park <hermetpark@gmail.com>2018-07-10 11:07:53 +0900
commit78cd61034185f07779d70163a38f5ffdffe5507b (patch)
tree485092b47c53a0d9a4e73975efe0f6d281f1b47c /src/lib/edje/edje_smart.c
parent53fa0c1520eb070ca8b29611fde92c0036a788ee (diff)
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
Diffstat (limited to 'src/lib/edje/edje_smart.c')
-rw-r--r--src/lib/edje/edje_smart.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c
index 29d042c..a3791a0 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)
54{ 54{
55 _edje_file_callbacks_del(ed, NULL); 55 _edje_file_callbacks_del(ed, NULL);
56 56
57 efl_invalidate(efl_super(obj, MY_CLASS)); 57 /* after invalidate is called, all internal objects are destroyed as a result
58 58 * of being unparented. do cleanups here to avoid leaking
59 //invalidate is done, this means the legacy evas deletion event is called. 59 */
60 for (int i = 0; i < ed->table_parts_size; ++i) 60 for (int i = 0; i < ed->table_parts_size; ++i)
61 { 61 {
62 Edje_Real_Part *rp = ed->table_parts[i]; 62 Edje_Real_Part *rp = ed->table_parts[i];
@@ -74,6 +74,8 @@ _efl_canvas_layout_efl_object_invalidate(Eo *obj, Edje *ed)
74 break; 74 break;
75 } 75 }
76 } 76 }
77
78 efl_invalidate(efl_super(obj, MY_CLASS));
77} 79}
78 80
79EOLIAN static void 81EOLIAN static void