This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch reproducible-widget-previews
in repository efl.
View the commit online.
commit 5c236194a554fb8f8b0b8140511df1570c60309b
Author: Cedric BAIL <[email protected]>
AuthorDate: Wed Mar 18 21:46:02 2026 -0600
hoversel: guard against NULL hover in item click and destructor
The item click callback and item destructor both access sd->hover
without checking for NULL. The hover popup can already be dismissed
(and sd->hover set to NULL) by the time these run -- for example,
when the item's selected smart callback or item->func triggers
hover dismissal before _on_item_clicked finishes.
This produced runtime safety errors:
evas_object_event_callback_priority_add() safety check failed: eo_obj == NULL
Add NULL checks before accessing sd->hover in both _on_item_clicked
and _elm_hoversel_item_efl_object_destructor.
Made-with: Cursor
---
src/lib/elementary/elc_hoversel.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c
index 6a9708c407..83c5356d82 100644
--- a/src/lib/elementary/elc_hoversel.c
+++ b/src/lib/elementary/elc_hoversel.c
@@ -178,7 +178,8 @@ _on_item_clicked(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve
if (item->func) item->func((void *)WIDGET_ITEM_DATA_GET(eo_it), obj2, eo_it);
evas_object_smart_callback_call(obj2, "selected", eo_it);
- evas_object_event_callback_add(sd->hover, EVAS_CALLBACK_DEL, _auto_update, item);
+ if (sd->hover)
+ evas_object_event_callback_add(sd->hover, EVAS_CALLBACK_DEL, _auto_update, item);
elm_hoversel_hover_end(obj2);
}
@@ -614,7 +615,8 @@ _elm_hoversel_item_efl_object_destructor(Eo *eo_item, Elm_Hoversel_Item_Data *it
{
ELM_HOVERSEL_DATA_GET_OR_RETURN(WIDGET(item), sd);
- evas_object_event_callback_del_full(sd->hover, EVAS_CALLBACK_DEL, _auto_update, eo_item);
+ if (sd->hover)
+ evas_object_event_callback_del_full(sd->hover, EVAS_CALLBACK_DEL, _auto_update, eo_item);
elm_hoversel_hover_end(WIDGET(item));
sd->items = eina_list_remove(sd->items, eo_item);
eina_stringshare_del(item->label);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.