helly Sat Mar 19 09:24:17 2005 EDT Added files: /php-src/ext/standard/tests/array bug30266.phpt
Modified files: /php-src/ext/standard array.c Log: - Check another incarnation of bug #30266 http://cvs.php.net/diff.php/php-src/ext/standard/array.c?r1=1.294&r2=1.295&ty=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.294 php-src/ext/standard/array.c:1.295 --- php-src/ext/standard/array.c:1.294 Sat Mar 12 05:11:46 2005 +++ php-src/ext/standard/array.c Sat Mar 19 09:24:17 2005 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.294 2005/03/12 10:11:46 andrey Exp $ */ +/* $Id: array.c,v 1.295 2005/03/19 14:24:17 helly Exp $ */ #include "php.h" #include "php_ini.h" @@ -1038,7 +1038,7 @@ zend_hash_internal_pointer_reset_ex(target_hash, &pos); /* Iterate through hash */ - while (zend_hash_get_current_data_ex(target_hash, (void **)&args[0], &pos) == SUCCESS) { + while (!EG(exception) && zend_hash_get_current_data_ex(target_hash, (void **)&args[0], &pos) == SUCCESS) { if (recursive && Z_TYPE_PP(args[0]) == IS_ARRAY) { HashTable *thash; http://cvs.php.net/co.php/php-src/ext/standard/tests/array/bug30266.phpt?r=1.1&p=1 Index: php-src/ext/standard/tests/array/bug30266.phpt +++ php-src/ext/standard/tests/array/bug30266.phpt --TEST-- Bug #30266 (Invalid opcode 137/1/8) and array_walk --FILE-- <?php class testc { public $b = "c"; function crash($val) { $this->b = $val; throw new Exception("Error"); } } $fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); $myobj = new testc(); function test($item2, $key, $userd) { $userd->crash($item2); } try { array_walk($fruits, 'test', $myobj); } catch(Exception $e) { echo "Caught: " . $e->getMessage() . "\n"; } ?> ===DONE=== --EXPECT-- Caught: Error ===DONE=== -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php