mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
llist improvements
This commit is contained in:
parent
537cc54acd
commit
c8b2bf0a1d
@ -72,26 +72,26 @@ ZEND_API void zend_llist_del_element(zend_llist *l, void *element)
|
||||
|
||||
ZEND_API void zend_llist_destroy(zend_llist *l)
|
||||
{
|
||||
zend_llist_element *current, *next;
|
||||
|
||||
if (l->dtor) {
|
||||
current = l->head;
|
||||
|
||||
while (current) {
|
||||
l->dtor(current->data);
|
||||
current = current->next;
|
||||
}
|
||||
}
|
||||
zend_llist_element *current=l->head, *next;
|
||||
|
||||
current = l->head;
|
||||
while (current) {
|
||||
next = current->next;
|
||||
if (l->dtor) {
|
||||
l->dtor(current->data);
|
||||
}
|
||||
pefree(current, l->persistent);
|
||||
current = next;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ZEND_API void zend_llist_clean(zend_llist *l)
|
||||
{
|
||||
zend_llist_destroy(l);
|
||||
l->head = l->tail = NULL;
|
||||
}
|
||||
|
||||
|
||||
ZEND_API void zend_llist_remove_tail(zend_llist *l)
|
||||
{
|
||||
zend_llist_element *old_tail;
|
||||
|
@ -38,6 +38,7 @@ ZEND_API void zend_llist_init(zend_llist *l, size_t size, void (*dtor)(void *dat
|
||||
ZEND_API void zend_llist_add_element(zend_llist *l, void *element);
|
||||
ZEND_API void zend_llist_del_element(zend_llist *l, void *element);
|
||||
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);
|
||||
ZEND_API void zend_llist_copy(zend_llist *dst, zend_llist *src);
|
||||
ZEND_API void zend_llist_apply(zend_llist *l, void (*func)(void *data));
|
||||
|
Loading…
Reference in New Issue
Block a user