From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.0.4
PHP Bug Type:     Scripting Engine problem
Bug description:  list delete api always tries to delete from regular list instead of 
given list

static inline int zend_list_do_delete(HashTable *list,int id)
{
        zend_rsrc_list_entry *le;
        ELS_FETCH();
        
        if (zend_hash_index_find(&EG(regular_list), id, (void **) &le)==SUCCESS) {
/*              printf("del(%d): %d->%d\n", id, le->refcount, le->refcount-1); */
                if (--le->refcount<=0) {
                        return zend_hash_index_del(&EG(regular_list), id);
                } else {
                        return SUCCESS;
                }
        } else {
                return FAILURE;
        }
}


In the above function from zend_list.c, as you can see that it is passed a HashTable 
*list parameter to delete the entry from, but when it calls the hash find and delete 
functions, it DOES NOT use the parameters HashTable * list which is passed in.  
Instead it passes &EG(regular_list), so even if call zend_plist_delete(...) to try to 
delete something from the persistent list, it'll try to delete it from the regular 
list.

NOTE: I checked the 4.0.5 release and it has the same problem.



-- 
Edit Bug report at: http://bugs.php.net/?id=11474&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to