diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-05-06 16:03:16 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-05-06 16:03:16 +0000 |
commit | 833e01343de06574271db9b0f3e2a3a5d61a89f1 (patch) | |
tree | 96a1fbee2c1f25124ab5d21b38a7a012ef49f9c0 /Zend/zend_execute_API.c | |
parent | ec4c40aa00b478ced8c344907a7578eb454f83a2 (diff) | |
download | php-git-833e01343de06574271db9b0f3e2a3a5d61a89f1.tar.gz |
GC fix
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r-- | Zend/zend_execute_API.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 5dcabaccbd..5aff1bde31 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -418,9 +418,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(); |