diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2018-01-12 22:51:20 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-01-12 22:51:20 +0100 |
commit | d00f52b6a9a021979925da907230a4290224ab69 (patch) | |
tree | dac225d466ff7115aa4aaf45218676f9514e9d8a | |
parent | e112b8474a31ccb0516dfd1d9045c1cf485ecdfe (diff) | |
parent | cab0a814bdbfc653754f74b42056c38bdf4fbadb (diff) | |
download | php-git-d00f52b6a9a021979925da907230a4290224ab69.tar.gz |
Merge branch 'PHP-7.1' into PHP-7.2
-rw-r--r-- | Zend/zend_generators.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index 2b776249ff..54675f7b43 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -179,10 +179,11 @@ static void zend_generator_dtor_storage(zend_object *object) /* {{{ */ zend_generator *root = generator->node.ptr.root, *next; while (UNEXPECTED(root != generator)) { next = zend_generator_get_child(&root->node, generator); + generator->node.ptr.root = next; + next->node.parent = NULL; OBJ_RELEASE(&root->std); root = next; } - generator->node.parent = NULL; } if (EXPECTED(!ex) || EXPECTED(!(ex->func->op_array.fn_flags & ZEND_ACC_HAS_FINALLY_BLOCK)) @@ -664,11 +665,12 @@ ZEND_API zend_generator *zend_generator_update_current(zend_generator *generator } } + leaf->node.ptr.root = root; if (old_root) { OBJ_RELEASE(&old_root->std); } - return leaf->node.ptr.root = root; + return root; } static int zend_generator_get_next_delegated_value(zend_generator *generator) /* {{{ */ |