Hey, I think you're right. Someone changed this code a while ago and might have introduced this problem (or it was like this before). I commited a fix and hope it doesn't break anything :) If anyone uses llist's please make sure it's OK.
Andi At 07:30 AM 8/27/2002 -0400, l0t3k wrote: >hi, > im reviewing the source code of zend_llist.c and it appears there may be an >inconsistency in the way deletions are handled which may cause leaks. > in particular the macro DEL_LLIST_ELEMENT only releases memory for a node >if a destructor is specified for the zend_llist, whereas memory is always >allocated for the node when an insert is performed. >this macro is used only in zend_llist_apply_with_del and >zend_llist_del_element. note that >no other code in the file assumes that the destructor function is >responsible for the deallocation of the _node_ > >compare DEL_LLIST_ELEMENT (snippet) > > if ((l)->dtor) {\ > (l)->dtor((current)->data);\ > pefree((current), (l)->persistent);\ > }\ > >with zend_llist_destroy > > if (l->dtor) { > l->dtor(current->data); > } > pefree(current, l->persistent); > > >l0t3k > > > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php