gc_043.phpt 941 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. GC buffer shouldn't get reused when removing nested data
  3. --FILE--
  4. <?php
  5. $s = <<<'STR'
  6. O:8:"stdClass":2:{i:5;C:8:"SplStack":29:{i:4;:r:1;:O:8:"stdClass":0:{}}i:0;O:13:"RegexIterator":1:{i:5;C:8:"SplStack":29:{i:4;:r:1;:O:8:"stdClass":0:{}}}}
  7. STR;
  8. var_dump(unserialize($s));
  9. gc_collect_cycles();
  10. ?>
  11. --EXPECT--
  12. object(stdClass)#1 (2) {
  13. ["5"]=>
  14. object(SplStack)#2 (2) {
  15. ["flags":"SplDoublyLinkedList":private]=>
  16. int(4)
  17. ["dllist":"SplDoublyLinkedList":private]=>
  18. array(2) {
  19. [0]=>
  20. *RECURSION*
  21. [1]=>
  22. object(stdClass)#3 (0) {
  23. }
  24. }
  25. }
  26. ["0"]=>
  27. object(RegexIterator)#4 (2) {
  28. ["replacement"]=>
  29. NULL
  30. ["5"]=>
  31. object(SplStack)#5 (2) {
  32. ["flags":"SplDoublyLinkedList":private]=>
  33. int(4)
  34. ["dllist":"SplDoublyLinkedList":private]=>
  35. array(2) {
  36. [0]=>
  37. *RECURSION*
  38. [1]=>
  39. object(stdClass)#6 (0) {
  40. }
  41. }
  42. }
  43. }
  44. }