- Fixed a bug in zend_rsrc_list_get_rsrc_type()

- Switched register_list_destructors() to use
  zend_register_list_destructors_ex() instead
This commit is contained in:
Andrei Zmievski 2000-10-20 18:26:15 +00:00
parent 7b4983c8f8
commit dadb140e2f
2 changed files with 6 additions and 2 deletions

View file

@ -397,8 +397,12 @@ void zend_destroy_rsrc_list_dtors()
char *zend_rsrc_list_get_rsrc_type(int resource) char *zend_rsrc_list_get_rsrc_type(int resource)
{ {
zend_rsrc_list_dtors_entry *lde; 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; return lde->type_name;
} else { } else {
return NULL; return NULL;

View file

@ -55,7 +55,7 @@ typedef struct _zend_rsrc_list_dtors_entry {
} 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(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); ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);