mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Fixed Segfault
This commit is contained in:
parent
2b9b9afa7a
commit
6d77ca06b9
2 changed files with 8 additions and 8 deletions
|
@ -137,7 +137,7 @@ void list_entry_destructor(zval *zv)
|
||||||
break;
|
break;
|
||||||
case ZEND_RESOURCE_LIST_TYPE_EX:
|
case ZEND_RESOURCE_LIST_TYPE_EX:
|
||||||
if (ld->list_dtor_ex) {
|
if (ld->list_dtor_ex) {
|
||||||
ld->list_dtor_ex(res->ptr TSRMLS_CC);
|
ld->list_dtor_ex(res TSRMLS_CC);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
EMPTY_SWITCH_DEFAULT_CASE()
|
EMPTY_SWITCH_DEFAULT_CASE()
|
||||||
|
@ -225,14 +225,14 @@ void zend_clean_module_rsrc_dtors(int module_number TSRMLS_DC)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number)
|
ZEND_API int zend_register_list_destructors(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, int module_number)
|
||||||
{
|
{
|
||||||
zend_rsrc_list_dtors_entry *lde;
|
zend_rsrc_list_dtors_entry *lde;
|
||||||
zval zv;
|
zval zv;
|
||||||
|
|
||||||
lde = malloc(sizeof(zend_rsrc_list_dtors_entry));
|
lde = malloc(sizeof(zend_rsrc_list_dtors_entry));
|
||||||
lde->list_dtor=(void (*)(void *)) ld;
|
lde->list_dtor = ld;
|
||||||
lde->plist_dtor=(void (*)(void *)) pld;
|
lde->plist_dtor = pld;
|
||||||
lde->list_dtor_ex = lde->plist_dtor_ex = NULL;
|
lde->list_dtor_ex = lde->plist_dtor_ex = NULL;
|
||||||
lde->module_number = module_number;
|
lde->module_number = module_number;
|
||||||
lde->resource_id = list_destructors.nNextFreeElement;
|
lde->resource_id = list_destructors.nNextFreeElement;
|
||||||
|
|
|
@ -35,8 +35,8 @@ typedef void (*rsrc_dtor_func_t)(zend_resource *res TSRMLS_DC);
|
||||||
|
|
||||||
typedef struct _zend_rsrc_list_dtors_entry {
|
typedef struct _zend_rsrc_list_dtors_entry {
|
||||||
/* old style destructors */
|
/* old style destructors */
|
||||||
void (*list_dtor)(void *);
|
void (*list_dtor)(zend_resource *);
|
||||||
void (*plist_dtor)(void *);
|
void (*plist_dtor)(zend_resource *);
|
||||||
|
|
||||||
/* new style destructors */
|
/* new style destructors */
|
||||||
rsrc_dtor_func_t list_dtor_ex;
|
rsrc_dtor_func_t list_dtor_ex;
|
||||||
|
@ -50,8 +50,8 @@ 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) zend_register_list_destructors(ld, pld, 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(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, int module_number);
|
||||||
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, const char *type_name, int module_number);
|
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, const char *type_name, int module_number);
|
||||||
|
|
||||||
void list_entry_destructor(zval *ptr);
|
void list_entry_destructor(zval *ptr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue