#32993 [Ver->Asn]: implemented Iterator function curreent() don't throw exception
| From: | sniper@php.net | Date: | Tue, 10 May 2005 12:35:38 +0000 |
| Subject: | #32993 [Ver->Asn]: implemented Iterator function curreent() don't throw exception | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-78851@lists.php.net to get a copy of this message | ||
ID: 32993
Updated by: sniper@php.net
Reported By: vojtech at x dot cz
-Status: Verified
+Status: Assigned
Bug Type: Zend Engine 2 problem
Operating System: *
PHP Version: 5.0.4
Assigned To: helly
Previous Comments:
------------------------------------------------------------------------
[2005-05-10 08:46:49] helly@php.net
Results in a SEGV in head
------------------------------------------------------------------------
[2005-05-10 06:17:40] vojtech at x dot cz
Description:
------------
It's seems there is not correctly processed exception from current()
and script ends up with fatal error.
Reproduce code:
---------------
class Test implements Iterator {
public $arr = array();
public function rewind() { return reset($this->arr); }
public function current() { throw new Exception(); }
public function key() { return key($this->arr); }
public function next() { return next($this->arr); }
public function valid() { return (current($this->arr) !==
false); }
}
$t = new Test();
$t->arr = array(1, 2, 3);
try {
foreach ($t as $v) {
; // do something
}
} catch (Exception $e) {
; // handle exception
}
Actual result:
--------------
Fatal error: Couldn't execute method Test::key in Unknown on line 0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32993&edit=1