From: Nikita Popov Date: Fri, 15 May 2020 09:03:05 +0000 (+0200) Subject: Fixed bug #79600 X-Git-Tag: php-7.4.7RC1~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d87b0685b5ec4e5df6d732414653f343bc44af8c;p=php Fixed bug #79600 Missed unsetting of DO_INIT in one case. --- diff --git a/NEWS b/NEWS index 948e869ba9..0e0a1e497d 100644 --- a/NEWS +++ b/NEWS @@ -6,12 +6,16 @@ PHP NEWS . Fixed bug #79599 (coredump in set_error_handler). (Laruence) . Fixed bug #79566 (Private SHM is not private on Windows). (cmb) . Fixed bug #79489 (.user.ini does not inherit). (cmb) + . Fixed bug #79600 (Regression in 7.4.6 when yielding an array based + generator). (Nikita) - FFI: . Fixed bug #79571 (FFI: var_dumping unions may segfault). (cmb) - Opcache: . Fixed bug #79588 (Boolean opcache settings ignore on/off values). (cmb) + . Fixed bug #79548 (Preloading segfault with inherited method using static + variable). (Nikita) - SimpleXML: . Fixed bug #79528 (Different object of the same xml between 7.4.5 and diff --git a/Zend/tests/generators/bug79600.phpt b/Zend/tests/generators/bug79600.phpt new file mode 100644 index 0000000000..4abe9784b6 --- /dev/null +++ b/Zend/tests/generators/bug79600.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #79600: Regression in 7.4.6 when yielding an array based generator +--FILE-- + +--EXPECT-- +1 +2 diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index 9d8546f518..4cd9087303 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -792,6 +792,7 @@ try_again: if (UNEXPECTED(!Z_ISUNDEF(generator->values))) { if (EXPECTED(zend_generator_get_next_delegated_value(generator) == SUCCESS)) { + orig_generator->flags &= ~ZEND_GENERATOR_DO_INIT; return; } /* If there are no more deletegated values, resume the generator