bug77345_gc_1.phpt 838 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Bug #77345 (Segmentation faults stack overflow in cyclic garbage collector) (Bug #77427)
  3. --INI--
  4. zend.enable_gc = 1
  5. --FILE--
  6. <?php
  7. class Node
  8. {
  9. /** @var Node */
  10. public $previous;
  11. /** @var Node */
  12. public $next;
  13. }
  14. var_dump(gc_enabled());
  15. var_dump('start');
  16. $firstNode = new Node();
  17. $firstNode->previous = $firstNode;
  18. $firstNode->next = $firstNode;
  19. $circularDoublyLinkedList = $firstNode;
  20. for ($i = 0; $i < 200000; $i++) {
  21. $currentNode = $circularDoublyLinkedList;
  22. $nextNode = $circularDoublyLinkedList->next;
  23. $newNode = new Node();
  24. $newNode->previous = $currentNode;
  25. $currentNode->next = $newNode;
  26. $newNode->next = $nextNode;
  27. $nextNode->previous = $newNode;
  28. $circularDoublyLinkedList = $nextNode;
  29. }
  30. var_dump('end');
  31. ?>
  32. --EXPECT--
  33. bool(true)
  34. string(5) "start"
  35. string(3) "end"