cvs: php-src(PHP_5_0) /ext/standard array.c /ext/standard/tests/array array_walk_recursive.phpt
| From: | Antony Dovgal | Date: | Fri, 03 Dec 2004 17:51:18 +0000 |
| Subject: | cvs: php-src(PHP_5_0) /ext/standard array.c /ext/standard/tests/array array_walk_recursive.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-29408@lists.php.net to get a copy of this message | ||
tony2001 Fri Dec 3 12:51:18 2004 EDT
Added files: (Branch: PHP_5_0)
/php-src/ext/standard/tests/array array_walk_recursive.phpt
Modified files:
/php-src/ext/standard array.c
Log:
MFH: fix array_walk_recursive() so it doesn't reuse cached fci between calls
and add test for it
http://cvs.php.net/diff.php/php-src/ext/standard/array.c?r1=1.266.2.8&r2=1.266.2.9&ty=u
Index: php-src/ext/standard/array.c
diff -u php-src/ext/standard/array.c:1.266.2.8 php-src/ext/standard/array.c:1.266.2.9
--- php-src/ext/standard/array.c:1.266.2.8 Thu Dec 2 11:36:00 2004
+++ php-src/ext/standard/array.c Fri Dec 3 12:51:17 2004
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: array.c,v 1.266.2.8 2004/12/02 16:36:00 tony2001 Exp $ */
+/* $Id: array.c,v 1.266.2.9 2004/12/03 17:51:17 tony2001 Exp $ */
#include "php.h"
#include "php_ini.h"
@@ -1125,6 +1125,8 @@
argc = ZEND_NUM_ARGS();
old_walk_func_name = BG(array_walk_func_name);
+ BG(array_walk_fci_cache) = empty_fcall_info_cache;
+
if (argc < 2 || argc > 3 ||
zend_get_parameters_ex(argc, &array, &BG(array_walk_func_name), &userdata) ==
FAILURE) {
BG(array_walk_func_name) = old_walk_func_name;
http://cvs.php.net/co.php/php-src/ext/standard/tests/array/array_walk_recursive.phpt?r=1.1&p=1
Index: php-src/ext/standard/tests/array/array_walk_recursive.phpt
+++ php-src/ext/standard/tests/array/array_walk_recursive.phpt
--TEST--
Test array_walk_recursive()
--FILE--
<?php
function foo($value) {
echo $value . " foo\n";
}
function bar($value) {
echo $value . " bar\n";
}
$arr = array (1,2,3);
var_dump (array_walk_recursive ($arr, 'foo'));
var_dump (array_walk_recursive ($arr, 'bar'));
?>
--EXPECTF--
1 foo
2 foo
3 foo
bool(true)
1 bar
2 bar
3 bar
bool(true)