From 349df856791abf9adb2e3f66c90e476947e3431b Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 9 Dec 2019 21:02:26 +0100 Subject: [PATCH] efl_ui_spotlight_manager_*: do not keep ptr of dead pointer when content is deleted, we should not keep a dangling pointer of it. Setting it to NULL here is enough, as later on a swtich_to reuest will be sent. Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D10844 --- src/lib/elementary/efl_ui_spotlight_manager_plain.c | 2 ++ src/lib/elementary/efl_ui_spotlight_manager_stack.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/lib/elementary/efl_ui_spotlight_manager_plain.c b/src/lib/elementary/efl_ui_spotlight_manager_plain.c index 83aab8fcce..d9c52ab3db 100644 --- a/src/lib/elementary/efl_ui_spotlight_manager_plain.c +++ b/src/lib/elementary/efl_ui_spotlight_manager_plain.c @@ -90,6 +90,8 @@ EOLIAN static void _efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_content_del(Eo *obj, Efl_Ui_Spotlight_Manager_Plain_Data *pd, Efl_Gfx_Entity *subobj, int index EINA_UNUSED) { efl_canvas_group_member_remove(pd->container, subobj); + if (pd->current_content == subobj) + pd->current_content = NULL; _content_changed(obj, pd); } EOLIAN static void diff --git a/src/lib/elementary/efl_ui_spotlight_manager_stack.c b/src/lib/elementary/efl_ui_spotlight_manager_stack.c index b286d75eab..d7d6d94c62 100644 --- a/src/lib/elementary/efl_ui_spotlight_manager_stack.c +++ b/src/lib/elementary/efl_ui_spotlight_manager_stack.c @@ -105,6 +105,11 @@ EOLIAN static void _efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_content_del(Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Manager_Stack_Data *pd, Efl_Gfx_Entity *subobj, int index) { efl_canvas_group_member_remove(pd->container, subobj); + for (int i = 0; i < 2; ++i) + { + if (pd->content[i] == subobj) + pd->content[i] = NULL; + } _update_ids(obj, pd, index); }