From: Andrei Zmievski Date: Fri, 20 Oct 2000 18:26:15 +0000 (+0000) Subject: - Fixed a bug in zend_rsrc_list_get_rsrc_type() X-Git-Tag: php-4.0.4RC3~604 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dadb140e2f38a02332179285aaa636c48b2bca12;p=php - Fixed a bug in zend_rsrc_list_get_rsrc_type() - Switched register_list_destructors() to use zend_register_list_destructors_ex() instead --- diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 9b16e8c0a1..7fb20c85cb 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -397,8 +397,12 @@ void zend_destroy_rsrc_list_dtors() char *zend_rsrc_list_get_rsrc_type(int resource) { zend_rsrc_list_dtors_entry *lde; + int rsrc_type; - if (zend_hash_index_find(&list_destructors, resource, (void **) &lde)==SUCCESS) { + if (!zend_list_find(resource, &rsrc_type)) + return NULL; + + if (zend_hash_index_find(&list_destructors, rsrc_type, (void **) &lde)==SUCCESS) { return lde->type_name; } else { return NULL; diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 6e92b014f5..8b9be4c0d6 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -55,7 +55,7 @@ typedef struct _zend_rsrc_list_dtors_entry { } zend_rsrc_list_dtors_entry; -#define register_list_destructors(ld, pld) zend_register_list_destructors((void (*)(void *))ld, (void (*)(void *))pld, module_number); +#define register_list_destructors(ld, pld, name) zend_register_list_destructors_ex(ld, pld, name, module_number); ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number); ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);