mirror of
https://github.com/php/php-src.git
synced 2024-11-30 21:35:36 +08:00
48 lines
670 B
Plaintext
48 lines
670 B
Plaintext
|
--TEST--
|
||
|
Bug #32252 (Segfault when offsetSet throws an Exception (only without debug))
|
||
|
--FILE--
|
||
|
<?php
|
||
|
|
||
|
class Test implements ArrayAccess
|
||
|
{
|
||
|
function offsetExists($offset)
|
||
|
{
|
||
|
echo __METHOD__ . "($offset)\n";
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function offsetGet($offset)
|
||
|
{
|
||
|
echo __METHOD__ . "($offset)\n";
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
function offsetSet($offset, $value)
|
||
|
{
|
||
|
echo __METHOD__ . "($offset, $value)\n";
|
||
|
throw new Exception("Ooops");
|
||
|
}
|
||
|
|
||
|
function offsetUnset($offset)
|
||
|
{
|
||
|
echo __METHOD__ . "($offset)\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$list = new Test();
|
||
|
try
|
||
|
{
|
||
|
$list[-1] = 123;
|
||
|
}
|
||
|
catch (Exception $e)
|
||
|
{
|
||
|
echo "CAUGHT\n";
|
||
|
}
|
||
|
|
||
|
?>
|
||
|
===DONE===
|
||
|
--EXPECT--
|
||
|
Test::offsetSet(-1, 123)
|
||
|
CAUGHT
|
||
|
===DONE===
|