History log of /PHP-8.2/Zend/zend_generators.c (Results 26 – 50 of 296)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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.


12345678910>>...12