From: Nikita Popov Date: Wed, 19 Dec 2012 14:21:34 +0000 (+0100) Subject: Add missing zend_do_free call X-Git-Tag: php-5.5.0alpha3~55 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2768315856be2c2df291b275b76d90fb6ef09414;p=php 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. --- 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 ';'