summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2005-12-27 22:35:18 +0000
committerAntony Dovgal <tony2001@php.net>2005-12-27 22:35:18 +0000
commit38722a19c11b445ca522a68c22118123eca7f351 (patch)
tree1783b475659a55fc11d0bd6b863b06a42f565901
parent41973d8969575b5068b9b8ae887c1480b2898baa (diff)
downloadphp-git-38722a19c11b445ca522a68c22118123eca7f351.tar.gz
add test for #35821
-rw-r--r--ext/standard/tests/array/bug35821.phpt34
1 files changed, 34 insertions, 0 deletions
diff --git a/ext/standard/tests/array/bug35821.phpt b/ext/standard/tests/array/bug35821.phpt
new file mode 100644
index 0000000000..05140d0d37
--- /dev/null
+++ b/ext/standard/tests/array/bug35821.phpt
@@ -0,0 +1,34 @@
+--TEST--
+Bug #35821 (array_map() segfaults when exception is throwed from the callback)
+--FILE--
+<?php
+
+class Element
+{
+ public function ThrowException ()
+ {
+ throw new Exception();
+ }
+
+ public static function CallBack(Element $elem)
+ {
+ $elem->ThrowException();
+ }
+}
+
+$arr = array(new Element(), new Element(), new Element());
+array_map(array('Element', 'CallBack'), $arr);
+
+echo "Done\n";
+?>
+--EXPECTF--
+
+Warning: array_map(): An error occurred while invoking the map callback in %s on line %d
+
+Fatal error: Uncaught exception 'Exception' in %s:%d
+Stack trace:
+#0 %s(%d): Element->ThrowException()
+#1 [internal function]: Element::CallBack(Object(Element))
+#2 %s(%d): array_map(Array, Array)
+#3 {main}
+ thrown in %s on line %d