> 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:

<?php
class InstanceContainer {
        public $value;

        function __construct() {
                $this->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
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to