From: Zeev Suraski Date: Wed, 12 May 1999 18:06:14 +0000 (+0000) Subject: Added prepend to llist X-Git-Tag: BEFORE_PHP4_APACHE_MODULE_CHANGE~48 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=853d6c6206f8789bf76be93a2278dcf54bbb64d2;p=php Added prepend to llist --- diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index aabbe6ab21..2f5a011d4d 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -43,6 +43,22 @@ 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_llist_element *tmp = pemalloc(sizeof(zend_llist_element)+l->size-1, l->persistent); + + tmp->next = l->head; + tmp->prev = NULL; + if (l->head) { + l->head->prev = tmp; + } else { + l->tail = tmp; + } + l->head = tmp; + memcpy(tmp->data, element, l->size); +} + + ZEND_API void zend_llist_del_element(zend_llist *l, void *element) { zend_llist_element *current=l->head; diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index f268af9b97..6d2e3e83ba 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -36,6 +36,7 @@ typedef struct { 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_destroy(zend_llist *l); ZEND_API void zend_llist_clean(zend_llist *l);