diff options
author | Rasmus Lerdorf <rasmus@lerdorf.com> | 2015-01-30 22:57:40 -0800 |
---|---|---|
committer | Rasmus Lerdorf <rasmus@lerdorf.com> | 2015-01-30 22:57:40 -0800 |
commit | 74b85316ea06c17256e102483daa472f4b638221 (patch) | |
tree | abe0618e15fcfc93158b4239889485ffc70c4c1c /Zend/zend_generators.c | |
parent | 130d7320b160443ca160ee6b3a19a034ee2c5ef1 (diff) | |
parent | 1e41295097576dbce6c197ddb7507c07ccae3cbe (diff) | |
download | php-git-dstogov-foreach.tar.gz |
Merge branch 'foreach' of https://github.com/dstogov/php-src into dstogov-foreachdstogov-foreach
Diffstat (limited to 'Zend/zend_generators.c')
-rw-r--r-- | Zend/zend_generators.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index f19bb85013..971d4e7bc8 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -60,6 +60,12 @@ static void zend_generator_cleanup_unfinished_execution(zend_generator *generato if (brk_opline->opcode == ZEND_FREE) { zval *var = EX_VAR(brk_opline->op1.var); zval_ptr_dtor_nogc(var); + } else if (brk_opline->opcode == ZEND_FE_FREE) { + zval *var = EX_VAR(brk_opline->op1.var); + if (Z_TYPE_P(var) != IS_ARRAY && Z_FE_ITER_P(var) != (uint32_t)-1) { + zend_hash_iterator_del(Z_FE_ITER_P(var)); + } + zval_ptr_dtor_nogc(var); } } } |