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

Reply via email to