|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-06-14 00:50 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 13:00:01 2025 UTC |
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.