Return to bug32252.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / Zend / tests |
1.1 ! misho 1: --TEST-- ! 2: Bug #32252 (Segfault when offsetSet throws an Exception (only without debug)) ! 3: --FILE-- ! 4: <?php ! 5: ! 6: class Test implements ArrayAccess ! 7: { ! 8: function offsetExists($offset) ! 9: { ! 10: echo __METHOD__ . "($offset)\n"; ! 11: return false; ! 12: } ! 13: ! 14: function offsetGet($offset) ! 15: { ! 16: echo __METHOD__ . "($offset)\n"; ! 17: return null; ! 18: } ! 19: ! 20: function offsetSet($offset, $value) ! 21: { ! 22: echo __METHOD__ . "($offset, $value)\n"; ! 23: throw new Exception("Ooops"); ! 24: } ! 25: ! 26: function offsetUnset($offset) ! 27: { ! 28: echo __METHOD__ . "($offset)\n"; ! 29: } ! 30: } ! 31: ! 32: $list = new Test(); ! 33: try ! 34: { ! 35: $list[-1] = 123; ! 36: } ! 37: catch (Exception $e) ! 38: { ! 39: echo "CAUGHT\n"; ! 40: } ! 41: ! 42: ?> ! 43: ===DONE=== ! 44: --EXPECT-- ! 45: Test::offsetSet(-1, 123) ! 46: CAUGHT ! 47: ===DONE===