summaryrefslogtreecommitdiff
path: root/Zend/zend_list.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2001-01-04 06:20:26 +0000
committerAndi Gutmans <andi@php.net>2001-01-04 06:20:26 +0000
commite976d8ed1dac38fbf2812fa0a1c52d50009650fe (patch)
treeb5bdddc1d606e5ef42b08705c0dba89eaaa543cb /Zend/zend_list.c
parent69f0255a2cf92e963dbb972dbd6b094237b3fe9f (diff)
downloadphp-git-e976d8ed1dac38fbf2812fa0a1c52d50009650fe.tar.gz
- Make plist_destructor work like list_destructor to allow it to call
extended destructors.
Diffstat (limited to 'Zend/zend_list.c')
-rw-r--r--Zend/zend_list.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/Zend/zend_list.c b/Zend/zend_list.c
index 7fb20c85cb..1631e72750 100644
--- a/Zend/zend_list.c
+++ b/Zend/zend_list.c
@@ -272,8 +272,18 @@ void plist_entry_destructor(void *ptr)
zend_rsrc_list_dtors_entry *ld;
if (zend_hash_index_find(&list_destructors, le->type,(void **) &ld)==SUCCESS) {
- if (ld->plist_dtor) {
- (ld->plist_dtor)(le->ptr);
+ switch (ld->type) {
+ case ZEND_RESOURCE_LIST_TYPE_STD:
+ if (ld->list_dtor) {
+ (ld->list_dtor)(le->ptr);
+ }
+ break;
+ case ZEND_RESOURCE_LIST_TYPE_EX:
+ if (ld->list_dtor_ex) {
+ ld->list_dtor_ex(le);
+ }
+ break;
+ EMPTY_SWITCH_DEFAULT_CASE()
}
} else {
zend_error(E_WARNING,"Unknown persistent list entry type in module shutdown (%d)",le->type);