ID:               39328
 Updated by:       [EMAIL PROTECTED]
 Reported By:      taneli at crasman dot fi
-Status:           Open
+Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: Linux
 PHP Version:      5.1.6
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

.


Previous Comments:
------------------------------------------------------------------------

[2006-11-01 08:52:20] taneli at crasman dot fi

Description:
------------
The example says it the best. Reproducible in both 5.1.6 and 4.4.4
(with minor changes), all extensions disabled. Definately related to
references, although I'm not sure if the code below is good practice,
but I've run into it on more than one occasion. I think it should be
freeing the objects when they go out of scope, but the reference
counting must be broken somehow. 

Might be related to #22055, but this one's been around for ages.

Reproduce code:
---------------
<?php {
  class A {
    var $ba;
    function A() {
      $this->ba = array();
      for ($i = 0; $i < 100; $i++)
        $this->ba[] = new B($this);
    }
    function __destruct() { // never gets called
      die("Freeing class A\n");
    }
  }

  class B {
    var $a;
    function B($a) { // function B(&$a), and:
      $this->a = $a; // $this->a =& $a; leaks in php 4.4.4
      // remove line above to prevent leak
    }
    function __destruct() { // never gets called either
      die("Freeing class B\n");
    }
  }

  $smu = memory_get_usage();
  while (true) {
    $ba = array();
    for ($i = 0; $i < 100; $i++)
      $ba[] = new A();
    $emu = memory_get_usage();
    echo sprintf("leak %.1f kB\r", ($emu - $smu) / 1024.0);
  }
}?>


Expected result:
----------------
No memory leak.

Actual result:
--------------
Rapidly increasing memory leak.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=39328&edit=1

Reply via email to