mirror of
https://github.com/php/php-src.git
synced 2026-04-27 10:16:41 +02:00
c2fe893985
not called. #Merge to 5.3 pending (slight BC break on AppendIterator, as it's no #longer possible to defer the call to the parent constructor until #after the constructor is performed). #Bugs fixed in an atypical way for SPL. The parent constructor call #check is performed at construction time by using a wrapper constructor #instead of a check on the beginning of each instance method. #Perhaps this should be uniformized in trunk; this method was mainly #applied only to the ones crashing, except a few iterators (at least #AppendIterator and RecursiveIteratorIterator).
26 lines
622 B
PHP
26 lines
622 B
PHP
--TEST--
|
|
Bug #41828 (Segfault if extended constructor of RecursiveIterator doesn't call its parent)
|
|
--FILE--
|
|
<?php
|
|
class foo extends RecursiveIteratorIterator {
|
|
|
|
public function __construct($str) {
|
|
}
|
|
|
|
public function bar() {
|
|
}
|
|
}
|
|
|
|
$foo = new foo("This is bar");
|
|
echo $foo->bar();
|
|
|
|
?>
|
|
==DONE==
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
Fatal error: Uncaught exception 'LogicException' with message 'In the constructor of foo, parent::__construct() must be called and its exceptions cannot be cleared' in %s:%d
|
|
Stack trace:
|
|
#0 %s(%d): foo->internal_construction_wrapper('This is bar')
|
|
#1 {main}
|
|
thrown in %s on line %d
|