diff options
Diffstat (limited to 'Zend/tests/bug38220.phpt')
-rwxr-xr-x | Zend/tests/bug38220.phpt | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/Zend/tests/bug38220.phpt b/Zend/tests/bug38220.phpt deleted file mode 100755 index d64e409778..0000000000 --- a/Zend/tests/bug38220.phpt +++ /dev/null @@ -1,92 +0,0 @@ ---TEST-- -Bug #38220 Crash on some object operations ---FILE-- -<?php -class drv { - public $obj; - - function func1() { - echo "func1(): {$this->obj->i}\n"; - } - - function close() { - echo "close(): {$this->obj->i}\n"; - } -} - -class A { - public $i; - - function __construct($i) { - $this->i = $i; - - } - - function __call($method, $args) { - $drv = myserv::drv(); - - $drv->obj = $this; - - echo "before call $method\n"; - print_r($this); - call_user_func_array(array($drv, $method), $args); - echo "after call $method\n"; - - // Uncomment this line to work without crash -// $drv->obj = null; - } - - function __destruct() { - echo "A::__destruct()\n"; - $this->close(); - } -} - -class myserv { - private static $drv = null; - - static function drv() { - if (is_null(self::$drv)) - self::$drv = new drv; - return self::$drv; - } -} - -$obj1 = new A(1); -$obj1->func1(); - -$obj2 = new A(2); -unset($obj1); -$obj2->func1(); -?> ---EXPECT-- -before call func1 -A Object -( - [i] => 1 -) -func1(): 1 -after call func1 -A::__destruct() -before call close -A Object -( - [i] => 1 -) -close(): 1 -after call close -before call func1 -A Object -( - [i] => 2 -) -func1(): 1 -after call func1 -A::__destruct() -before call close -A Object -( - [i] => 2 -) -close(): 2 -after call close |