1--TEST-- 2Bug #32252 (Segfault when offsetSet throws an Exception (only without debug)) 3--FILE-- 4<?php 5 6class 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(); 33try 34{ 35 $list[-1] = 123; 36} 37catch (Exception $e) 38{ 39 echo "CAUGHT\n"; 40} 41 42?> 43===DONE=== 44--EXPECT-- 45Test::offsetSet(-1, 123) 46CAUGHT 47===DONE=== 48