ID: 31086 Updated by: [EMAIL PROTECTED] Reported By: junkmail at konvergencia dot hu -Status: Open +Status: Feedback Bug Type: Class/Object related Operating System: FreeBSD 4.10 PHP Version: 5.0.2 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.0-win32-latest.zip I can't reproduce it with latest 5.0.x-CVS version. Previous Comments: ------------------------------------------------------------------------ [2004-12-14 12:49:23] junkmail at konvergencia dot hu Description: ------------ If class B's constructor is defined as __construct(A $anObject), calling new B(new A) without taking the return value causes a crash (SIGBUS). Not using type hinting or assigning the result to a variable seems to work around the problem. E.g. $tmp = new B(new A()) does not produce the crash. Reproduce code: --------------- <?php Class A { function __construct(){} } Class B { function __construct(A $a){} } new B(new A()); echo 'OK'; ?> Expected result: ---------------- A simple OK would be nice ;) Actual result: -------------- Program terminated with signal 10, Bus error. (gdb) bt #0 zend_std_object_get_class (object=0x84591cc) at /usr/local/src/php-5.0.2/Zend/zend_object_handlers.c:905 #1 0x81b66dd in zend_get_class_entry (zobject=0x84591cc) at /usr/local/src/php-5.0.2/Zend/zend_API.c:205 #2 0x81e9d5b in zend_recv_handler (execute_data=0xbfbfe094, opline=0x8443e58, op_array=0x83a6c0c) at /usr/local/src/php-5.0.2/Zend/zend_execute.c:345 #3 0x81d0805 in execute (op_array=0x83a6c0c) at /usr/local/src/php-5.0.2/Zend/zend_execute.c:1400 #4 0x81e8193 in zend_do_fcall_common_helper (execute_data=0xbfbfe254, opline=0x845a39c, op_array=0x83a660c) at /usr/local/src/php-5.0.2/Zend/zend_execute.c:2740 #5 0x81e84ed in zend_do_fcall_by_name_handler (execute_data=0xbfbfe254, opline=0x845a39c, op_array=0x83a660c) at /usr/local/src/php-5.0.2/Zend/zend_execute.c:2825 #6 0x81d0805 in execute (op_array=0x83a660c) at /usr/local/src/php-5.0.2/Zend/zend_execute.c:1400 #7 0x81b6195 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/local/src/php-5.0.2/Zend/zend.c:1060 #8 0x8187dbb in php_execute_script (primary_file=0xbfbff8d0) at /usr/local/src/php-5.0.2/main/main.c:1629 #9 0x81f1120 in main (argc=2, argv=0xbfbff948) at /usr/local/src/php-5.0.2/sapi/cgi/cgi_main.c:1568 (gdb) print zobj $1 = (zend_object *) 0xffffffff ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31086&edit=1