Ok, the subject probably doesn't make much sense because of the
lack of my proper english ;)
Anyway, consider this:
<?
class bar {
function bar($parent) {
$this->parent = &$parent;
}
}
class foo {
var $num = 0;
function foo() {
$this->bar = new bar(&$this);
$this->num = 1;
}
function call() {
echo "I'm foo\n";
}
}
$f = new foo;
$f->bar->parent->call();
echo $f->bar->parent->num . "\n";
?>
It works ...
mfischer@debian:~$ php -f src/php/oo.php
I'm foo
1
... but ...
./zend_execute.c(467) : Freeing 0x082F96A4 (12 bytes), script=src/php/oo.php
zend_hash.c(260) : Freeing 0x082F79A4 (42 bytes), script=src/php/oo.php
Last leak repeated 2 times
zend_API.c(593) : Freeing 0x082F77A4 (44 bytes), script=src/php/oo.php
zend_API.c(581) : Actual location (location was relayed)
Last leak repeated 1 time
./zend_execute.c(1948) : Freeing 0x082F9664 (12 bytes), script=src/php/oo.php
Last leak repeated 1 time
zend_hash.c(176) : Freeing 0x082EEFA4 (32 bytes), script=src/php/oo.php
Last leak repeated 1 time
on shutdown.
If I remove the reference operator (thus make a copy of the object [which I
don't want]) at any point there is no leak.
- Markus
ps: na don't tell me this is a known issue :-)
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]