From: Zeev Suraski Date: Fri, 26 Nov 1999 23:44:41 +0000 (+0000) Subject: - Modify zend_llist_del() to receive a comparison function X-Git-Tag: PRE_RETURN_REF_PATCH~219 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cd5394443585707ea591376017fece7c30be8f50;p=php - Modify zend_llist_del() to receive a comparison function --- diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index e7f69c546c..1024f0fa8e 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -63,12 +63,12 @@ ZEND_API void zend_llist_prepend_element(zend_llist *l, void *element) } -ZEND_API void zend_llist_del_element(zend_llist *l, void *element) +ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int (*compare)(void *element1, void *element2)) { zend_llist_element *current=l->head; while (current) { - if (!memcmp(current->data, element, l->size)) { + if (compare(current->data, element)) { if (current->prev) { current->prev->next = current->next; } else { diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index f2767c1d59..c6eddb59b2 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -42,7 +42,7 @@ BEGIN_EXTERN_C() ZEND_API void zend_llist_init(zend_llist *l, size_t size, void (*dtor)(void *data), unsigned char persistent); ZEND_API void zend_llist_add_element(zend_llist *l, void *element); ZEND_API void zend_llist_prepend_element(zend_llist *l, void *element); -ZEND_API void zend_llist_del_element(zend_llist *l, void *element); +ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int (*compare)(void *element1, void *element2)); ZEND_API void zend_llist_destroy(zend_llist *l); ZEND_API void zend_llist_clean(zend_llist *l); ZEND_API void zend_llist_remove_tail(zend_llist *l);