summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2018-01-12 22:51:20 +0100
committerNikita Popov <nikita.ppv@gmail.com>2018-01-12 22:51:20 +0100
commitd00f52b6a9a021979925da907230a4290224ab69 (patch)
treedac225d466ff7115aa4aaf45218676f9514e9d8a
parente112b8474a31ccb0516dfd1d9045c1cf485ecdfe (diff)
parentcab0a814bdbfc653754f74b42056c38bdf4fbadb (diff)
downloadphp-git-d00f52b6a9a021979925da907230a4290224ab69.tar.gz
Merge branch 'PHP-7.1' into PHP-7.2
-rw-r--r--Zend/zend_generators.c6
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) /* {{{ */