diff --git a/NEWS b/NEWS index 948e869ba90..0e0a1e497df 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 00000000000..4abe9784b69 --- /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 9d8546f5185..4cd9087303a 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