remove del callbacks for xkbswitch list config objects
==10821== Invalid write of size 8 ==10821== at 0x28168A4B: _list_del (e_mod_config.c:455) ==10821== by 0x78F6C78: _eo_evas_object_cb (evas_callbacks.c:192) ==10821== by 0xE597F3A: _event_callback_call (eo_base_class.c:1422) ==10821== by 0xE598161: _efl_object_event_callback_legacy_call (eo_base_class.c:1491) ==10821== by 0xE59BC8F: efl_event_callback_legacy_call (efl_object.eo.c:146) ==10821== by 0x7932A4D: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1012) ==10821== by 0xE59BC8F: efl_event_callback_legacy_call (efl_object.eo.c:146) ==10821== by 0x78F7537: evas_object_event_callback_call (evas_callbacks.c:364) ==10821== by 0x7932C9B: _efl_canvas_object_efl_object_destructor (evas_object_main.c:1042) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0x5033E3F: _elm_interface_atspi_accessible_efl_object_destructor (elm_interface_atspi_accessible.c:609) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0x511E8DB: _elm_widget_efl_object_destructor (elm_widget.c:5866) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0xE58D31E: _efl_del_internal (eo_private.h:248) ==10821== by 0xE58D6E5: _efl_unref_internal (eo_private.h:323) ==10821== by 0xE58F9CA: _efl_object_call_end (eo.c:620) ==10821== by 0xE599203: efl_del (efl_object.eo.c:18) ==10821== by 0x7932565: evas_object_del (evas_object_main.c:902) ==10821== by 0x510EC99: _elm_widget_efl_canvas_group_group_del (elm_widget.c:461) ==10821== by 0x7948FE8: efl_canvas_group_del (efl_canvas_group.eo.c:36) ==10821== by 0x505ACC0: _elm_layout_efl_canvas_group_group_del (elm_layout.c:813) ==10821== by 0x7948FE8: efl_canvas_group_del (efl_canvas_group.eo.c:36) ==10821== by 0x7946ED7: evas_object_smart_del (evas_object_smart.c:1076) ==10821== by 0x7933114: _efl_canvas_object_efl_object_destructor (evas_object_main.c:1095) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0x5033E3F: _elm_interface_atspi_accessible_efl_object_destructor (elm_interface_atspi_accessible.c:609) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0x511E8DB: _elm_widget_efl_object_destructor (elm_widget.c:5866) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0xE58D31E: _efl_del_internal (eo_private.h:248) ==10821== by 0xE58D6E5: _efl_unref_internal (eo_private.h:323) ==10821== by 0xE58F9CA: _efl_object_call_end (eo.c:620) ==10821== by 0xE599203: efl_del (efl_object.eo.c:18) ==10821== by 0x7932565: evas_object_del (evas_object_main.c:902) ==10821== by 0x510EC99: _elm_widget_efl_canvas_group_group_del (elm_widget.c:461) ==10821== by 0x7948FE8: efl_canvas_group_del (efl_canvas_group.eo.c:36) ==10821== by 0x4F4D549: _elm_box_efl_canvas_group_group_del (elm_box.c:412) ==10821== by 0x7948FE8: efl_canvas_group_del (efl_canvas_group.eo.c:36) ==10821== by 0x7946ED7: evas_object_smart_del (evas_object_smart.c:1076) ==10821== by 0x7933114: _efl_canvas_object_efl_object_destructor (evas_object_main.c:1095) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0x5033E3F: _elm_interface_atspi_accessible_efl_object_destructor (elm_interface_atspi_accessible.c:609) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0x511E8DB: _elm_widget_efl_object_destructor (elm_widget.c:5866) ==10821== by 0xE599F2A: efl_destructor (efl_object.eo.c:58) ==10821== by 0xE58D31E: _efl_del_internal (eo_private.h:248) ==10821== by 0xE58D6E5: _efl_unref_internal (eo_private.h:323) ==10821== by 0xE58F9CA: _efl_object_call_end (eo.c:620) ==10821== by 0xE599203: efl_del (efl_object.eo.c:18) ==10821== Address 0x2c731708 is 184 bytes inside a block of size 456 free'd ==10821== at 0x4C2ED4A: free (vg_replace_malloc.c:530) ==10821== by 0x28165F69: _free_data (e_mod_config.c:249) ==10821== by 0x49D92E: _e_config_dialog_free (e_config_dialog.c:156) ==10821== by 0x546D2F: e_object_free (e_object.c:119) ==10821== by 0x546F4B: e_object_unref (e_object.c:152) ==10821== by 0x546B5E: e_object_del (e_object.c:60) ==10821== by 0x49E233: _e_config_dialog_cb_dialog_del (e_config_dialog.c:333) ==10821== by 0x546B34: e_object_del (e_object.c:58) ==10821== by 0x4AA23C: _e_dialog_cb_key_down (e_dialog.c:357) ==10821== by 0x78F6CB4: _eo_evas_object_cb (evas_callbacks.c:199) ==10821== by 0xE597F3A: _event_callback_call (eo_base_class.c:1422) ==10821== by 0xE598161: _efl_object_event_callback_legacy_call (eo_base_class.c:1491) ==10821== by 0xE59BC8F: efl_event_callback_legacy_call (efl_object.eo.c:146) ==10821== by 0x7932A4D: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1012) ==10821== by 0xE59BC8F: efl_event_callback_legacy_call (efl_object.eo.c:146) ==10821== by 0x78F7537: evas_object_event_callback_call (evas_callbacks.c:364) ==10821== by 0x7906AD8: _canvas_event_feed_key_down_internal (evas_events.c:3112) ==10821== by 0x7909281: _evas_canvas_event_key_cb (evas_events.c:3960) ==10821== by 0xE597E57: _event_callback_call (eo_base_class.c:1399) ==10821== by 0xE598161: _efl_object_event_callback_legacy_call (eo_base_class.c:1491) ==10821== by 0xE59BC8F: efl_event_callback_legacy_call (efl_object.eo.c:146) ==10821== by 0x65FDE63: _direct_key_updown_cb (ecore_evas.c:4664) ==10821== by 0x65FDFC9: _ecore_evas_input_direct_cb (ecore_evas.c:4692) ==10821== by 0x6813D6E: _ecore_event_evas_key (ecore_input_evas.c:429) ==10821== by 0x6814A8D: ecore_event_evas_key_down (ecore_input_evas.c:707) ==10821== by 0xDBD7AF6: _ecore_call_handler_cb (ecore_private.h:317) ==10821== by 0xDBD8A85: _ecore_event_call (ecore_events.c:518) ==10821== by 0xDBE1AEF: _ecore_main_loop_iterate_internal (ecore_main.c:2380) ==10821== by 0xDBDF89D: ecore_main_loop_begin (ecore_main.c:1290) ==10821== by 0x441BB4: main (e_main.c:1093) ==10821== Block was alloc'd at ==10821== at 0x4C2FA50: calloc (vg_replace_malloc.c:711) ==10821== by 0x28165773: _create_data (e_mod_config.c:182) ==10821== by 0x49DBBC: _e_config_dialog_go (e_config_dialog.c:204) ==10821== by 0x49D4E9: e_config_dialog_new (e_config_dialog.c:80) ==10821== by 0x28165625: _xkb_cfg_dialog (e_mod_config.c:141) ==10821== by 0x49EACF: e_configure_registry_call (e_configure.c:72) ==10821== by 0x314400C3: _e_mod_run_cb (e_mod_main.c:165) ==10821== by 0x53DA23: _e_menu_active_call (e_menu.c:2045) ==10821== by 0x53F7CC: _e_menu_cb_mouse_up (e_menu.c:2778) ==10821== by 0xDBD7AF6: _ecore_call_handler_cb (ecore_private.h:317) ==10821== by 0xDBD8A85: _ecore_event_call (ecore_events.c:518) ==10821== by 0xDBE1AEF: _ecore_main_loop_iterate_internal (ecore_main.c:2380) ==10821== by 0xDBDF89D: ecore_main_loop_begin (ecore_main.c:1290) ==10821== by 0x441BB4: main (e_main.c:1093)
This commit is contained in:
parent
97f1c83712
commit
0266601a29
|
@ -230,6 +230,16 @@ _create_data(E_Config_Dialog *cfd)
|
|||
return cfdata;
|
||||
}
|
||||
|
||||
static void
|
||||
_list_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||
{
|
||||
Evas_Object **o;
|
||||
|
||||
o = data;
|
||||
|
||||
*o = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
|
@ -237,6 +247,13 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
_xkb.cfd = NULL;
|
||||
|
||||
if (cfdata->compose_list)
|
||||
evas_object_event_callback_del(cfdata->compose_list, EVAS_CALLBACK_DEL, _list_del);
|
||||
if (cfdata->lv3_list)
|
||||
evas_object_event_callback_del(cfdata->lv3_list, EVAS_CALLBACK_DEL, _list_del);
|
||||
if (cfdata->switch_list)
|
||||
evas_object_event_callback_del(cfdata->switch_list, EVAS_CALLBACK_DEL, _list_del);
|
||||
|
||||
EINA_LIST_FREE(cfdata->cfg_layouts, cl)
|
||||
{
|
||||
eina_stringshare_del(cl->name);
|
||||
|
@ -445,16 +462,6 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
_list_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||
{
|
||||
Evas_Object **o;
|
||||
|
||||
o = data;
|
||||
|
||||
*o = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_option_del(void *data, Evas_Object *obj, void *event EINA_UNUSED)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue