Annotation of embedaddon/php/Zend/tests/bug48409.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #48409 (crash when exception is thrown while passing function arguments)
3: --FILE--
4: <?php
5:
6: class ABCException extends Exception {}
7:
8: class BBB
9: {
10: public function xyz($d, $x)
11: {
12: if ($x == 34) {
13: throw new ABCException;
14: }
15: return array('foo' => 'xyz');
16: }
17: }
18:
19: class CCC
20: {
21: public function process($p)
22: {
23: return $p;
24: }
25: }
26:
27: class AAA
28: {
29: public function func()
30: {
31: $b = new BBB;
32: $c = new CCC;
33: $i = 34;
34: $item = array('foo' => 'bar');
35: try {
36: $c->process($b->xyz($item['foo'], $i));
37: }
38: catch(ABCException $e) {
39: $b->xyz($item['foo'], $i);
40: }
41: } // end func();
42: }
43:
44: class Runner
45: {
46: public function run($x)
47: {
48: try {
49: $x->func();
50: }
51: catch(ABCException $e) {
52: throw new Exception;
53: }
54: }
55: }
56:
57: try {
58: $runner = new Runner;
59: $runner->run(new AAA);
60: }
61: catch(Exception $e) {
62: die('Exception thrown');
63: }
64:
65: ?>
66: --EXPECT--
67: Exception thrown
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>