ID: 29423 Updated by: [EMAIL PROTECTED] Reported By: stefan at hotpaenz dot de -Status: Open +Status: Assigned -Bug Type: Zend Engine 2 problem +Bug Type: Scripting Engine problem Operating System: Linux 2.6.3 -PHP Version: 5CVS-2004-07-28 (dev) +PHP Version: 4CVS, 5CVS -Assigned To: +Assigned To: dmitry New Comment:
Confirmed here too (with PHP 4) and it leaks too: string(16) "This is a string" /dat/dev/php/php-5.0dev/Zend/zend_execute.c(253) : Freeing 0x085E7994 (16 bytes), script=- === Total 1 memory leaks detected === assigning to Dmitry Previous Comments: ------------------------------------------------------------------------ [2005-03-07 12:13:42] stefan at hotpaenz dot de Of course you could make this code cause an fatal error (instead of the "expected result" that PHP4 returns), but please please please don't let it fail silently. It easily leads to errors that are really hard to track. ------------------------------------------------------------------------ [2005-03-07 11:50:47] stefan at hotpaenz dot de The bug remains for me with "latest cvs" snapshot 200503070930, configured with ./configure --disable-cli --enable-cgi --without-pear --disable-all ------------------------------------------------------------------------ [2005-03-06 22:12:14] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip ------------------------------------------------------------------------ [2004-07-28 10:59:58] stefan at hotpaenz dot de Description: ------------ See the code below: An object of ClassA is passed to FuncB, which calls FuncA with the return-by-reference operator. FuncA is not designed to return by reference. The reference count seems to get wrong by doing that so the object is discarded when FuncB returns. Reproduce code: --------------- <?php class ClassA { } function FuncA($obj) { return $obj; } function FuncB($obj) { $dummy = &FuncA($obj); } $obj = new ClassA(); FuncB($obj); $str='This is a string' var_dump($obj); Expected result: ---------------- object(ClassA)#1 (0) { } Actual result: -------------- string(16) "This is a string" ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29423&edit=1