#
6e55f4df |
| 02-Oct-2024 |
Arnaud Le Blanc |
Fix assertion failure in generator dtor (#16025)
|
#
cd255007 |
| 28-Aug-2024 |
Arnaud Le Blanc |
Do not scan generator frames more than once (#15330)
|
#
c02c1d44 |
| 08-Aug-2024 |
Arnaud Le Blanc |
Change YIELD/YIELD_FROM to do not increment opline (#15328) YIELD and YIELD_FROM increment opline before returning, but in most places we need the opline to point to the YIELD and YIELD_
Change YIELD/YIELD_FROM to do not increment opline (#15328) YIELD and YIELD_FROM increment opline before returning, but in most places we need the opline to point to the YIELD and YIELD_FROM. Here I change YIELD / YIELD_FROM to not increment opline. This simplifies the code and fixes GH-15275 in a better way. Closes GH-15328
show more ...
|
#
c767fec2 |
| 10-Aug-2024 |
Arnaud Le Blanc |
Fix crash during GC of suspended generator delegate (#15275)
|
#
99e0d3fe |
| 30-Jul-2024 |
Arnaud Le Blanc |
Fix destruction of generator running in fibers during shutdown (#15158) The destructor of generators is a no-op when the generator is running in a fiber, because the fiber may resume the
Fix destruction of generator running in fibers during shutdown (#15158) The destructor of generators is a no-op when the generator is running in a fiber, because the fiber may resume the generator. Normally the destructor is not called in this case, but this can happen during shutdown. We detect that a generator is running in a fiber with the ZEND_GENERATOR_IN_FIBER flag. This change fixes two cases not handled by this mechanism: - The ZEND_GENERATOR_IN_FIBER flag was not added when resuming a "yield from $nonGenerator" - When a generator that is running in a fiber has multiple children (aka multiple generators yielding from it), all of them could be considered to also run in a fiber (only one actually is), and could leak if not destroyed before shutdown.
show more ...
|
#
be7f3aa4 |
| 01-Jun-2024 |
Bob Weinand |
Fix GH-14387: Crash when stack walking in destructor of yielded from values during Generator->throw()
|
#
8e62e2b8 |
| 22-May-2024 |
Cristian Rodríguez |
Mark multple functions as static (#13864) * Mark many functions as static Multiple functions are missing the static qualifier. * remove unused struct sigactions st
Mark multple functions as static (#13864) * Mark many functions as static Multiple functions are missing the static qualifier. * remove unused struct sigactions struct sigaction act, old_term, old_quit, old_int; all unused. * optimizer: minXOR and maxXOR are unused
show more ...
|
#
8094bd1b |
| 21-May-2024 |
Tim Düsterhus |
Make `ReflectionGenerator::getFunction()` legal after generator termination (#14167) * Make `ReflectionGenerator::getFunction()` legal after generator termination * Expose the gener
Make `ReflectionGenerator::getFunction()` legal after generator termination (#14167) * Make `ReflectionGenerator::getFunction()` legal after generator termination * Expose the generator function name via `Generator::__debugInfo()` * Allow creating `ReflectionGenerator` after termination * Reorder `struct _zend_generator` to avoid a hole * Adjust `ext/reflection/tests/028.phpt` This is legal now. * Fix Generator Closure collection * Add test to verify the Closure dies with the generator * NEWS / UPGRADING
show more ...
|
#
c3f5bbde |
| 01-Apr-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Simplify always-true check in zend_generator_update_current (#13848) `old_root` is dereferenced at top, so `old_root` must not be NULL, and the check doesn't actually do anything.
|
#
97267215 |
| 10-Jan-2024 |
David CARLIER |
general signatures discrepencies fixes (#13122)
|
#
fc32d39b |
| 08-Apr-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-11028: Heap Buffer Overflow in zval_undefined_cv. For analysis see https://github.com/php/php-src/issues/11028#issuecomment-1508460440 Closes GH-11083.
|
#
d721dcc2 |
| 10-Feb-2023 |
Arnaud Le Blanc |
Fix colletion of unfinished function call in fibers Fixes GH-10496. Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
|
#
00be6e1a |
| 30-Jan-2023 |
Bob Weinand |
Look at executing generator for fiber destructor behaviour
|
#
b9bca2da |
| 30-Jan-2023 |
Bob Weinand |
Fix resetting ZEND_GENERATOR_IN_FIBER flag Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
|
#
1173c2e6 |
| 27-Jan-2023 |
Arnaud Le Blanc |
Prevent dtor of generator in suspended fiber (#10462) Generators that suspended a fiber should not be dtor because they will be executed during the fiber dtor. Fiber dtor throws
Prevent dtor of generator in suspended fiber (#10462) Generators that suspended a fiber should not be dtor because they will be executed during the fiber dtor. Fiber dtor throws an exception in the fiber's context in order to unwind and execute finally blocks, which will also properly dtor the generator. Fixes GH-9916
show more ...
|
#
4fb14939 |
| 13-Jan-2023 |
Arnaud Le Blanc |
GC fiber unfinished executions (#9810)
|
#
5d1f3e04 |
| 04-Nov-2022 |
Arnaud Le Blanc |
Fix generator memory leaks when interrupted during argument evaluation (#9756)
|
#
86e1fea3 |
| 14-Oct-2022 |
Arnaud Le Blanc |
Restore extra_named_params when restoring frozen call stack
|
#
5a0b68be |
| 14-Sep-2022 |
Bob Weinand |
Revert "Store default object handlers alongside the class entry" This reverts commit 9e6eab3c139b41dc976dd5305fd1a6e387e5e27f. Reverted along a01dd9fedaecd2e5b95bc5c2e8d6542116addea
Revert "Store default object handlers alongside the class entry" This reverts commit 9e6eab3c139b41dc976dd5305fd1a6e387e5e27f. Reverted along a01dd9fedaecd2e5b95bc5c2e8d6542116addeae.
show more ...
|
Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23, php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3, php-8.2.0beta2, php-8.1.9, php-8.0.22 |
|
#
9e6eab3c |
| 22-Jul-2022 |
Bob Weinand |
Store default object handlers alongside the class entry Object handlers being separate from class entries is a legacy inherited from PHP 5. Today it has little benefit to keep them separate:
Store default object handlers alongside the class entry Object handlers being separate from class entries is a legacy inherited from PHP 5. Today it has little benefit to keep them separate: in fact, accessing object handlers usually requires not-so-safe hacks. While it is possible to swap handlers in a custom installed create_object handler, this mostly is tedious, as well as it requires allocating the object handlers struct at runtime, possibly caching it etc.. This allows extensions, which intend to observe other classes to install their own class handlers. The life cycle of internal classes may now be simply observed by swapping the class handlers in post_startup stage. The life cycle of userland classes may be observed by iterating over the new classes in zend_compile_file and zend_compile_string and then swapping their handlers. In general, this would also be a first step in directly tying the object handlers to classes. Especially given that I am not aware of any case where the object handlers would be different between various instances of a given class. Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
show more ...
|
Revision tags: php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1, php-8.0.21, php-8.1.8, php-8.2.0alpha3, php-8.1.8RC1, php-8.2.0alpha2, php-8.0.21RC1, php-8.0.20, php-8.1.7, php-8.2.0alpha1, php-7.4.30, php-8.1.7RC1, php-8.0.20RC1, php-8.1.6, php-8.0.19, php-8.1.6RC1, php-8.0.19RC1, php-8.0.18, php-8.1.5, php-7.4.29 |
|
#
ceda8a8c |
| 04-Apr-2022 |
Bob Weinand |
Merge branch 'PHP-8.1'
|
#
e0025562 |
| 04-Apr-2022 |
Bob Weinand |
Merge branch 'PHP-8.0' into PHP-8.1
|
#
9cb512ec |
| 04-Apr-2022 |
Bob Weinand |
Ensure correct target opline for exceptions thrown during yield from Also appends the exception during a yield from values dtor instead of prepending it Fixing regression introduced
Ensure correct target opline for exceptions thrown during yield from Also appends the exception during a yield from values dtor instead of prepending it Fixing regression introduced in 13649451c201361b438ca0f762cfb33dfc3fca39.
show more ...
|
#
914c1ba1 |
| 01-Apr-2022 |
Bob Weinand |
Merge branch 'PHP-8.1'
|
#
16dceded |
| 01-Apr-2022 |
Bob Weinand |
Merge branch 'PHP-8.0' into PHP-8.1
|