diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-02-18 16:27:38 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-02-18 16:27:38 +0400 |
commit | 5de7115679522dec2f4725104c6f8c6e4a7bd8e4 (patch) | |
tree | 4c3ec266ea19dec3ca82e348c1e73483d1899715 /Zend/zend_variables.c | |
parent | 1c4f3d39a805323dc60f2bc1bfc96e39d608ac37 (diff) | |
download | php-git-5de7115679522dec2f4725104c6f8c6e4a7bd8e4.tar.gz |
Use better data structures (incomplete; able to run bench.php)
Diffstat (limited to 'Zend/zend_variables.c')
-rw-r--r-- | Zend/zend_variables.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index b9fc79ff35..90415ba47e 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -68,6 +68,12 @@ ZEND_API void _zval_dtor_func(zval *zvalue ZEND_FILE_LINE_DC) } } break; + case IS_REFERENCE: + if (Z_DELREF_P(zvalue) == 0) { + zval_dtor(Z_REFVAL_P(zvalue)); + efree(Z_REF_P(zvalue)); + } + break; case IS_LONG: case IS_DOUBLE: case IS_BOOL: @@ -117,6 +123,10 @@ ZEND_API void _zval_dtor_func_for_ptr(zval *zvalue ZEND_FILE_LINE_DC) zend_list_delete(Z_RES_P(zvalue)); } break; + case IS_REFERENCE: + zval_dtor(Z_REFVAL_P(zvalue)); + efree(Z_REF_P(zvalue)); + break; case IS_LONG: case IS_DOUBLE: case IS_BOOL: |