]> granicus.if.org Git - php/commitdiff
Fix valgrind issue when throwing due to yield from aborted generator
authorBob Weinand <bobwei9@hotmail.com>
Thu, 1 Dec 2016 14:21:28 +0000 (15:21 +0100)
committerBob Weinand <bobwei9@hotmail.com>
Thu, 1 Dec 2016 14:21:28 +0000 (15:21 +0100)
Zend/zend_generators.c

index 6055e76e967a5ba1a8cdb61e1d61cf2c84bfb458..8dc9484eb0631fa93f89c14efd9ba714d941ea21 100644 (file)
@@ -519,6 +519,7 @@ ZEND_API zend_generator *zend_generator_update_current(zend_generator *generator
                                                        generator->execute_fake.prev_execute_data = original_execute_data;
                                                }
 
+                                               root->execute_data->opline--; /* ZEND_YIELD(_FROM) already advance, so decrement opline to throw from correct place */
                                                zend_throw_exception(zend_ce_ClosedGeneratorException, "Generator yielded from aborted, no return value available", 0);
 
                                                EG(current_execute_data) = original_execute_data;