1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
--TEST--
SPL: spl_autoload_register() Bug #48541: registering multiple closures fails with memleaks
--FILE--
<?php
class X {
public function getClosure() {
return function($class) {
echo "a2 called\n";
};
}
}
$a = function ($class) {
echo "a called\n";
};
$x = new X;
$a2 = $x->getClosure();
$b = function ($class) {
eval('class ' . $class . '{function __construct(){echo "foo\n";}}');
echo "b called\n";
};
spl_autoload_register($a);
spl_autoload_register($a2);
spl_autoload_register($b);
$c = $a;
$c2 = $a2;
spl_autoload_register($c);
spl_autoload_register($c2);
$c = new foo;
?>
===DONE===
--EXPECT--
a called
a2 called
b called
foo
===DONE===
|