summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYeongJong Lee <yj34.lee@samsung.com>2018-01-15 19:55:37 +0900
committerJaehyun Cho <jae_hyun.cho@samsung.com>2018-01-15 19:55:37 +0900
commitf7849d07278c063ba4bd49cb298eba2ec1f2a337 (patch)
treeca1ffe9a4e6ba243fb70734534eb725f3929e252
parent8fc21da029b7d337be42c436e6e2f05837c10412 (diff)
downloadefl-f7849d07278c063ba4bd49cb298eba2ec1f2a337.tar.gz
elc_popup: reorder the sub objects free sequence
Summary: when the popup is deleted, some EVAS_CALLBACK_DEL callback functions try to use already freed objects. reorder free sequence to prevent it. Test Plan: 1. elementary_test -to popup 2. check 'Enable popup scroll' 3. open several popup test and click Close button. 4. check that there are no error message Reviewers: Jaehyun_Cho, bu5hm4n Reviewed By: Jaehyun_Cho Subscribers: cedric, jpeg, herb Differential Revision: https://phab.enlightenment.org/D5730
-rw-r--r--src/lib/elementary/elc_popup.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c
index 598f9710e2..b95482f0fc 100644
--- a/src/lib/elementary/elc_popup.c
+++ b/src/lib/elementary/elc_popup.c
@@ -252,17 +252,17 @@ _elm_popup_efl_canvas_group_group_del(Eo *obj, Elm_Popup_Data *sd)
}
// XXX? delete other objects? just to be sure.
- ELM_SAFE_FREE(sd->main_layout, evas_object_del);
ELM_SAFE_FREE(sd->notify, evas_object_del);
ELM_SAFE_FREE(sd->title_icon, evas_object_del);
- ELM_SAFE_FREE(sd->content_area, evas_object_del);
ELM_SAFE_FREE(sd->text_content_obj, evas_object_del);
- ELM_SAFE_FREE(sd->action_area, evas_object_del);
ELM_SAFE_FREE(sd->box, evas_object_del);
ELM_SAFE_FREE(sd->tbl, evas_object_del);
ELM_SAFE_FREE(sd->spacer, evas_object_del);
ELM_SAFE_FREE(sd->scr, evas_object_del);
ELM_SAFE_FREE(sd->content, evas_object_del);
+ ELM_SAFE_FREE(sd->main_layout, evas_object_del);
+ ELM_SAFE_FREE(sd->content_area, evas_object_del);
+ ELM_SAFE_FREE(sd->action_area, evas_object_del);
ELM_SAFE_FREE(sd->title_text, eina_stringshare_del);
efl_canvas_group_del(efl_super(obj, MY_CLASS));