{
API_ENTRY return;
- if (eina_list_data_find(sd->subobjs, obj)) return;
+ if (eina_list_data_find(sd->subobjs, sobj)) return;
evas_object_event_callback_del(sobj, EVAS_CALLBACK_DEL, _sub_obj_del);
_e_smart_del(Evas_Object *obj)
{
INTERNAL_ENTRY;
- void *po = NULL;
if (sd->del_func) sd->del_func(obj);
while (sd->subobjs)
{
- if (sd->subobjs->data == po)
- {
- po = sd->subobjs->data;
- sd->subobjs = eina_list_remove_list(sd->subobjs, sd->subobjs);
- continue;
- }
- po = sd->subobjs->data;
- evas_object_del(sd->subobjs->data);
+ Evas_Object *sobj = sd->subobjs->data;
+ evas_object_del(sobj);
+ sd->subobjs = eina_list_remove(sd->subobjs, sobj);
}
free(sd);
}