> 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