*If* anybody's wondering... I don't have karma. Michael Wallner wrote: > The attached patch fixes zend_llist_remove_tail() which didn't reset > zend_llist->head properly. > The diff was generated against 5_2. > > Regards, > > > ------------------------------------------------------------------------ > > Index: Zend/zend_llist.c > =================================================================== > RCS file: /repository/ZendEngine2/zend_llist.c,v > retrieving revision 1.35.2.1.2.1 > diff -u -p -d -r1.35.2.1.2.1 zend_llist.c > --- Zend/zend_llist.c 1 Jan 2007 09:35:46 -0000 1.35.2.1.2.1 > +++ Zend/zend_llist.c 27 Jan 2007 17:31:36 -0000 > @@ -130,28 +130,17 @@ ZEND_API void zend_llist_clean(zend_llis > > ZEND_API void *zend_llist_remove_tail(zend_llist *l) > { > - zend_llist_element *old_tail; > + zend_llist_element *current = l->tail; > void *data; > - > - if ((old_tail = l->tail)) { > - if (l->tail->prev) { > - l->tail->prev->next = NULL; > - } > - > - data = old_tail->data; > - > - l->tail = l->tail->prev; > - if (l->dtor) { > - l->dtor(data); > - } > - pefree(old_tail, l->persistent); > - > - --l->count; > - > - return data; > + > + if (current) { > + data = current->data; > + DEL_LLIST_ELEMENT(current, l); > + } else { > + data = NULL; > } > - > - return NULL; > + > + return data; > } > >
-- Michael -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php