@ -89,14 +89,22 @@ ZEND_API int _zval_dtor(zval *zvalue ZEND_FILE_LINE_DC)
}
void zval_del_ref(zval **p)
{
(*p)->refcount--;
if ((*p)->refcount==0) {
zval_dtor(*p);
efree(*p);
void zval_add_ref(zval **p)
(*p)->refcount++;
ZEND_API int _zval_copy_ctor(zval *zvalue ZEND_FILE_LINE_DC)
switch (zvalue->type) {
@ -49,6 +49,7 @@ END_EXTERN_C()
void zval_add_ref(zval **p);
void zval_del_ref(zval **p);
#define PVAL_DESTRUCTOR (int (*)(void *)) zval_dtor_wrapper
#define PVAL_PTR_DTOR (int (*)(void *)) zval_ptr_dtor_wrapper