#
1954e597 |
| 26-Jan-2021 |
Máté Kocsis |
Add support for generating class entries from stubs Closes GH-6289 Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
#
3e01f5af |
| 15-Jan-2021 |
Nikita Popov |
Replace zend_bool uses with bool We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool
Replace zend_bool uses with bool We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool is retained as an alias.
show more ...
|
#
22793884 |
| 03-Dec-2020 |
Nikita Popov |
Remove some INDIRECT handling in VM
|
#
99a8ec6e |
| 18-Nov-2020 |
Nikita Popov |
Short-circuit get_gc for currently running generator
|
#
a58e371c |
| 22-Oct-2020 |
Nikita Popov |
Remove unused single.leaf member
|
#
dd4a0801 |
| 15-Oct-2020 |
Nikita Popov |
Simplify and fix generator tree management This makes a number of related changes to the generator tree management, that should hopefully make it easier to understand, more robust an
Simplify and fix generator tree management This makes a number of related changes to the generator tree management, that should hopefully make it easier to understand, more robust and faster for the common linear-chain case. Fixes https://bugs.php.net/bug.php?id=80240, which was the original motivation here. * Generators now only add a ref to their direct parent. * Nodes only store their children, not their leafs, which avoids any need for leaf updating. This means it's no longer possible to fetch the child for a certain leaf, which is something we only needed in one place (update_current). If multi-children nodes are involved, this will require doing a walk in the other direction (from leaf to root). It does not affect the common case of single-child nodes. * The root/leaf pointers are now seen as a pair. One leaf generator can point to the current root. If a different leaf generator is used, we'll move the root pointer over to that one. Again, this is a cache to make the common linear chain case fast, trees may need to scan up the parent link. Closes GH-6344.
show more ...
|
#
c5401854 |
| 18-Sep-2020 |
Nikita Popov |
Run tidy This should fix most of the remaining issues with tabs and spaces being mixed in tests.
|
#
d5d31ea3 |
| 18-Sep-2020 |
Dmitry Stogov |
Cleanup observer API and add JIT support
|
#
452f7b0d |
| 14-Sep-2020 |
Bob Weinand |
Fix use-after-free with yield from in yield_from_multi_tree_single_nodes.phpt Prevent release of generator children during destruction
|
#
ad61e141 |
| 13-Sep-2020 |
Bob Weinand |
Fix crashes with unproper cleaning of repeated yield from Closes GH-6130
|
#
174dadf6 |
| 07-Sep-2020 |
Nikita Popov |
Don't allow dynamic properties on generators Noticed this because we leak those properties in GC. This was never intended to be allowed.
|
#
2e9e706a |
| 02-Sep-2020 |
Nikita Popov |
Fix throwing of yield from related exceptions into generator Use the general zend_generator_throw_exception() helper for this. Otherwise we don't handle the off-by-one opline correctly (
Fix throwing of yield from related exceptions into generator Use the general zend_generator_throw_exception() helper for this. Otherwise we don't handle the off-by-one opline correctly (should we maybe just stop doing that?) This is a followup to ad750c3bb6e7b48384c6265eb9d3bcf5b4000652, which fixed a different yield from exception handling problem that happened to show up in the same test case from oss-fuzz #25321. Now both issues should be fixed.
show more ...
|
#
c6ea0e90 |
| 01-Sep-2020 |
Nikita Popov |
Assert there are children in zend_generator_get_child()
|
#
66c3e900 |
| 01-Sep-2020 |
Levi Morrison |
Add zend_observer API Closes GH-5857. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Co-authored-by: Sammy Powers <sammyk@datadoghq.com>
|
#
ad750c3b |
| 31-Aug-2020 |
Nikita Popov |
Fix handling of exception if valid() during yield from Fixes oss-fuzz #25296.
|
#
fa8d9b11 |
| 28-Aug-2020 |
George Peter Banyard |
Improve type declarations for Zend APIs Voidification of Zend API which always succeeded Use bool argument types instead of int for boolean arguments Use bool return type for functio
Improve type declarations for Zend APIs Voidification of Zend API which always succeeded Use bool argument types instead of int for boolean arguments Use bool return type for functions which return true/false (1/0) Use zend_result return type for functions which return SUCCESS/FAILURE as they don't follow normal boolean semantics Closes GH-6002
show more ...
|
#
e25aab64 |
| 11-Aug-2020 |
Nikita Popov |
Fixed bug #79927 We need to unset the AT_FIRST_YIELD flag when yielding from an array as well. In the interest of being conservative, I'm applying this only to PHP 8.
|
#
d92229d8 |
| 06-Apr-2020 |
Nikita Popov |
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument nam
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument name. For now, it is looked up by linear scan and runtime cached. * This may leave UNDEF arguments on the stack. To avoid having to deal with them in other places, a CHECK_UNDEF_ARGS opcode is used to either replace them with defaults, or error. * For variadic functions, EX(extra_named_params) are collected and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS. RFC: https://wiki.php.net/rfc/named_params Closes GH-5357.
show more ...
|
#
2b5de6f8 |
| 01-Jul-2020 |
Max Semenik |
Remove proto comments from C files Closes GH-5758
|
#
271bc689 |
| 01-Jul-2020 |
Nikita Popov |
Add iterator get_gc function for generators Closes GH-5787.
|
#
312201dc |
| 01-Jul-2020 |
Nikita Popov |
Add get_gc handle for object iterators Optional handler with the same semantics as the object handler.
|
#
89b2483e |
| 30-Jun-2020 |
Nikita Popov |
Remove generator iterator member This is probably a leftover from the PHP 5 implementation, where the iterator was embedded directly in the generator.
|
#
187a72d5 |
| 30-Jun-2020 |
Nikita Popov |
Remove bogus generator iterator dtor Fixes a use-after-free encountered in Symfony's SecurityBundle. I don't have a reproducer for this, and believe the issue can only occur if we le
Remove bogus generator iterator dtor Fixes a use-after-free encountered in Symfony's SecurityBundle. I don't have a reproducer for this, and believe the issue can only occur if we leak an iterator (the leak is a separate issue). We should not free the generator iterator here, because we do not own it. The code that fetched the iterator is responsible for releasing it. In the rare case where we do hit this code-path, we cause a use-after-free.
show more ...
|
#
24a8065f |
| 29-Jun-2020 |
Dmitry Stogov |
Tracing JIT support for include() and generators
|
#
15846ff1 |
| 17-Jun-2020 |
Nikita Popov |
Add ZVAL_OBJ_COPY macro For the common ZVAL_OBJ + GC_ADDREF pattern. This mirrors the existing ZVAL_STR_COPY API.
|