Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:7101 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 17163 invoked by uid 1010); 14 Jan 2004 15:03:51 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 17115 invoked from network); 14 Jan 2004 15:03:51 -0000 Received: from unknown (HELO edwardbear.org) (216.179.74.133) by pb1.pair.com with SMTP; 14 Jan 2004 15:03:51 -0000 Received: by edwardbear.org via sendmail from stdin id (Debian Smail3.2.0.115) Wed, 14 Jan 2004 10:03:20 -0500 (EST) Date: Wed, 14 Jan 2004 10:03:20 -0500 To: Andi Gutmans Cc: internals@lists.php.net Message-ID: <20040114150320.GM23361@bumblebury.com> References: <20040113234225.GI23361@bumblebury.com> <5.1.0.14.2.20040114105605.02b9e8f0@127.0.0.1> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5.1.0.14.2.20040114105605.02b9e8f0@127.0.0.1> User-Agent: Mutt/1.5.4i Subject: Re: [PHP-DEV] Leak Script From: sterling@php.net (Sterling Hughes) > Looks like a circular reference to me. It's supposed to leak :) > Yep - but shouldn't object destruction be forced before the memory manager cleans it up. The example could rather be put as: value = new GenericObject($this); } function __destruct() { print "Called\n"; } } class GenericObject { public $internal; function __construct($instance) { $this->internal = $instance; } } $o = new InstanceContainer(); ?> As you can predict, __destruct() won't be called. Shouldn't objects be unmercifully cleaned up before we rely on the memory manager to burn the leftovers? -Sterling > Andi > > At 06:42 PM 1/13/2004 -0500, Sterling Hughes wrote: > >Hey, > > > >The attached script gives 10 leaks when PHP5 is compiled with > >--enable-debug. These problems are also related to Bug #26765, I'll be > >taking a look at it, unless someone knows the cause already. > > > >The leaks caused when running it are: > > > >/home/sterling/work/php/php-src/Zend/zend_execute.c(2840) : Freeing > >0x40162A30 (16 bytes), script=t.php > >/home/sterling/work/php/php-src/Zend/zend_hash.c(236) : Freeing > >0x401629CC (44 bytes), script=t.php > >Last leak repeated 1 time > >/home/sterling/work/php/php-src/Zend/zend_execute.c(3094) : Freeing > >0x40162968 (44 bytes), script=t.php > >/home/sterling/work/php/php-src/Zend/zend_API.c(720) : Actual location > >(location was relayed) > >Last leak repeated 1 time > >/home/sterling/work/php/php-src/Zend/zend_objects.c(88) : Freeing > >0x40162924 (12 bytes), script=t.php > >Last leak repeated 1 time > >/home/sterling/work/php/php-src/Zend/zend_execute.c(3093) : Freeing > >0x401628E0 (16 bytes), script=t.php > >/home/sterling/work/php/php-src/Zend/zend_API.c(721) : Freeing > >0x4016272C (32 bytes), script=t.php > >/home/sterling/work/php/php-src/Zend/zend_hash.c(157) : Actual location > >(location was relayed) > >Last leak repeated 1 time > >=== Total 10 memory leaks detected === > > > >-Sterling > > > >-- > >PHP Internals - PHP Runtime Development Mailing List > >To unsubscribe, visit: http://www.php.net/unsub.php >