summaryrefslogtreecommitdiff
path: root/Zend/zend_language_parser.y
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2012-12-19 15:21:34 +0100
committerNikita Popov <nikic@php.net>2012-12-19 15:21:34 +0100
commit2768315856be2c2df291b275b76d90fb6ef09414 (patch)
treec1932b6ecdb40a5532f9e5f1d33c8e0c6223ac07 /Zend/zend_language_parser.y
parent828bb4d44d9d07cb2510dc0bced1da931b78791c (diff)
downloadphp-git-2768315856be2c2df291b275b76d90fb6ef09414.tar.gz
Add missing zend_do_free call
This is a followup to d53f1bf8ab. When the yield *statement* is used its return value still needs to be freed.
Diffstat (limited to 'Zend/zend_language_parser.y')
-rw-r--r--Zend/zend_language_parser.y2
1 files changed, 1 insertions, 1 deletions
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index c1514c5d78..c97361b20b 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -300,7 +300,7 @@ unticked_statement:
| T_RETURN ';' { zend_do_return(NULL, 0 TSRMLS_CC); }
| T_RETURN expr_without_variable ';' { zend_do_return(&$2, 0 TSRMLS_CC); }
| T_RETURN variable ';' { zend_do_return(&$2, 1 TSRMLS_CC); }
- | yield_expr ';' { $$ = $1; }
+ | yield_expr ';' { zend_do_free(&$1 TSRMLS_CC); }
| T_GLOBAL global_var_list ';'
| T_STATIC static_var_list ';'
| T_ECHO echo_expr_list ';'