]> granicus.if.org Git - php/commitdiff
Arguments array can't make cycles
authorDmitry Stogov <dmitry@zend.com>
Fri, 3 Feb 2017 14:38:03 +0000 (17:38 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 3 Feb 2017 14:38:03 +0000 (17:38 +0300)
Zend/tests/bug70805.phpt
Zend/tests/bug70805_1.phpt
Zend/tests/bug70805_2.phpt
main/php_variables.c

index 256f52eed525dfa4d9276726dc8dfb63afff72f4..ec835bcd1b93a32764b67959033b7c5bede5a706 100644 (file)
@@ -27,7 +27,7 @@ $c = new A;
 $array = array($c); //This is used to leave a room for $GLOBALS["a"]
 unset($c);
 
-while ($i++ < 9997) {
+while ($i++ < 9998) {
        $t = [];
        $t[] = &$t;
        unset($t);
index af57cdb5d94403713f4a1efa675e7553139ebc1a..51595668a1801c818837885182a55942b26d6b6e 100644 (file)
@@ -29,7 +29,7 @@ $c = new A;
 $array = array($c); 
 unset($c);
 
-while ($i++ < 9997) {
+while ($i++ < 9998) {
        $t = [];
        $t[] = &$t;
        unset($t);
index c878c83bbce64b6811eb1f5c56eb2cc345238857..a4d01aa626de316b850539e877217924639b1e66 100644 (file)
@@ -24,7 +24,7 @@ $a->b->a = $a;
 
 $i = 0;
 
-while ($i++ < 9998) {
+while ($i++ < 9999) {
        $t = [];
        $t[] = &$t;
        unset($t);
index c1fb36d6addbc89634ae054e7edf511cc509097a..7dd5298af92f137e778b2ae7647f1b0dc3de763f 100644 (file)
@@ -610,7 +610,7 @@ PHPAPI void php_build_argv(char *s, zval *track_vars_array)
                zend_hash_str_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv")-1, &arr);
                zend_hash_str_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc")-1, &argc);
        }
-       zval_ptr_dtor(&arr);
+       zval_ptr_dtor_nogc(&arr);
 }
 /* }}} */