The current implementation of ecore_dlist_remove_destroy() (see e17/libs/ecore/src/lib/ecore/ecore_list.c) simply calls the same function for singly linked-list. This is the incorrect behaviour because the ecore_list_ implementation does not deal with the "previous" pointer correctly. I propose that the current function should be replaced with:
void ecore_dlist_remove_destroy(Ecore_Dlist * list) { void *data; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); data = ecore_dlist_remove(list); if (list->free_func) list->free_func(data); return TRUE; } Dylan Shell. ------------------------------------------------------- This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual core and dual graphics technology at this free one hour event hosted by HP, AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel