elm/popup: remove del callback for internal table object during destruction
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 29 May 2019 13:29:45 +0000 (09:29 -0400)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 3 Jun 2019 07:04:04 +0000 (16:04 +0900)
Summary:
the table object's destruction is no longer relevant after this point and
its callback can trigger unnecessary errors

@fix
Depends on D8986

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8988

src/lib/elementary/elc_popup.c

index 73c7946..7c5c276 100644 (file)
@@ -349,7 +349,7 @@ _focus_changed_popup(void *data, const Efl_Event *ev)
 EFL_CALLBACKS_ARRAY_DEFINE(composition_cb,
    { EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED, _focus_changed_popup },
 )
-
+static void _on_table_del(void *data, Evas *e, Evas_Object *obj, void *event_info);
 EOLIAN static void
 _elm_popup_efl_canvas_group_group_del(Eo *obj, Elm_Popup_Data *sd)
 {
@@ -363,6 +363,9 @@ _elm_popup_efl_canvas_group_group_del(Eo *obj, Elm_Popup_Data *sd)
    evas_object_event_callback_del
      (sd->content, EVAS_CALLBACK_DEL, _on_content_del);
    evas_object_event_callback_del(obj, EVAS_CALLBACK_SHOW, _on_show);
+   if (sd->tbl)
+     evas_object_event_callback_del_full(sd->tbl, EVAS_CALLBACK_DEL,
+                                    _on_table_del, obj);
    efl_event_callback_array_del(sd->notify, composition_cb(), obj);
 
    sd->last_button_number = 0;