diff options
| author | Xinchen Hui <laruence@php.net> | 2015-01-05 22:20:13 +0800 |
|---|---|---|
| committer | Xinchen Hui <laruence@php.net> | 2015-01-05 22:21:37 +0800 |
| commit | faa41715071966de6d0b56977eaf4c51831c00ee (patch) | |
| tree | f501f8866270e6ec075dbebf29f5789f13232f03 | |
| parent | 40230eef81c7331468324cebe7b39cdbff7d470c (diff) | |
| download | php-git-faa41715071966de6d0b56977eaf4c51831c00ee.tar.gz | |
Add test script and use efree_size
| -rw-r--r-- | Zend/tests/foreach_reference.phpt | 50 | ||||
| -rw-r--r-- | Zend/zend_variables.c | 2 |
2 files changed, 51 insertions, 1 deletions
diff --git a/Zend/tests/foreach_reference.phpt b/Zend/tests/foreach_reference.phpt new file mode 100644 index 0000000000..6b273208aa --- /dev/null +++ b/Zend/tests/foreach_reference.phpt @@ -0,0 +1,50 @@ +--TEST-- +foreach with reference +--FILE-- +<?php + +$array = ['a', 'b', 'c', 'd']; + +foreach ($array as &$a) { +} + +var_dump($array); + +var_dump(array_values($array)); +var_dump($a); + +var_dump(array_reverse($array)); + +?> +--EXPECTF-- +array(4) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + [3]=> + &string(1) "d" +} +array(4) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + [2]=> + string(1) "c" + [3]=> + &string(1) "d" +} +string(1) "d" +array(4) { + [0]=> + &string(1) "d" + [1]=> + string(1) "c" + [2]=> + string(1) "b" + [3]=> + string(1) "a" +} diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index b476bd9f8d..91d68c3985 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -207,7 +207,7 @@ ZEND_API void zval_add_ref(zval *p) if (Z_ISREF_P(p) && Z_REFCOUNT_P(p) == 1) { zend_reference *ref = Z_REF_P(p); ZVAL_COPY(p, Z_REFVAL_P(p)); - efree(ref); + efree_size(ref, sizeof(zend_reference)); } else { Z_ADDREF_P(p); } |
