1
0
mirror of https://github.com/php/php-src.git synced 2026-04-24 00:18:23 +02:00
This commit is contained in:
Dmitry Stogov
2008-05-06 16:02:50 +00:00
parent 76606319c0
commit c9652e94f5
2 changed files with 19 additions and 9 deletions
+12 -6
View File
@@ -85,9 +85,13 @@ static inline void zend_pzval_unlock_func(zval *z, zend_free_op *should_free, in
static inline void zend_pzval_unlock_free_func(zval *z) /* {{{ */
{
if (!Z_DELREF_P(z)) {
GC_REMOVE_ZVAL_FROM_BUFFER(z);
zval_dtor(z);
safe_free_zval_ptr(z);
TSRMLS_FETCH();
if (z != &EG(uninitialized_zval)) {
GC_REMOVE_ZVAL_FROM_BUFFER(z);
zval_dtor(z);
efree(z);
}
}
}
/* }}} */
@@ -778,9 +782,11 @@ static inline zval* zend_assign_to_variable(zval **variable_ptr_ptr, zval *value
} else {
Z_ADDREF_P(value);
*variable_ptr_ptr = value;
GC_REMOVE_ZVAL_FROM_BUFFER(variable_ptr);
zendi_zval_dtor(*variable_ptr);
safe_free_zval_ptr(variable_ptr);
if (variable_ptr != &EG(uninitialized_zval)) {
GC_REMOVE_ZVAL_FROM_BUFFER(variable_ptr);
zval_dtor(variable_ptr);
efree(variable_ptr);
}
return value;
}
} else {
+7 -3
View File
@@ -445,9 +445,13 @@ ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC) /* {{{ */
#endif
Z_DELREF_PP(zval_ptr);
if (Z_REFCOUNT_PP(zval_ptr) == 0) {
GC_REMOVE_ZVAL_FROM_BUFFER(*zval_ptr);
zval_dtor(*zval_ptr);
safe_free_zval_ptr_rel(*zval_ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC);
TSRMLS_FETCH();
if (*zval_ptr != &EG(uninitialized_zval)) {
GC_REMOVE_ZVAL_FROM_BUFFER(*zval_ptr);
zval_dtor(*zval_ptr);
efree_rel(*zval_ptr);
}
} else {
TSRMLS_FETCH();