bug47343.phpt 681 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. Bug #47343 (gc_collect_cycles causes a segfault when called within a destructor in one case)
  3. --FILE--
  4. <?php
  5. class A
  6. {
  7. public function __destruct()
  8. {
  9. gc_collect_cycles();
  10. }
  11. public function getB()
  12. {
  13. $this->data['foo'] = new B($this);
  14. $this->data['bar'] = new B($this);
  15. // Return either of the above
  16. return $this->data['foo'];
  17. }
  18. }
  19. class B
  20. {
  21. public function __construct($A)
  22. {
  23. $this->A = $A;
  24. }
  25. public function __destruct()
  26. {
  27. }
  28. }
  29. for ($i = 0; $i < 2; $i++)
  30. {
  31. $Aobj = new A;
  32. $Bobj = $Aobj->getB();
  33. unset($Bobj);
  34. unset($Aobj);
  35. }
  36. echo "DONE\n";
  37. ?>
  38. --EXPECT--
  39. DONE