[php-src] PR #24007: Zend: follow-up for GH-22145. Fix zend_fcc_closure_equals_ex() implementation
| From: | Girgias | Date: | Wed, 30 Sep 2026 00:30:12 +0000 |
| Subject: | [php-src] PR #24007: Zend: follow-up for GH-22145. Fix zend_fcc_closure_equals_ex() implementation | ||
| Groups: | php.git-pulls | ||
| Request: | Send a blank email to git-pulls+get-38964@lists.php.net to get a copy of this message | ||
Pull Request: https://github.com/php/php-src/pull/24007
Author: Girgias
This is effectively a follow-up to #22145 to properly fix #22118 with internal functions.
It turns out that to prevent memory leaks for fake closures of internal functions, the zif_handler
is changed to
zend_closure_internal_handler and the true zif_handler is stored in the
orig_internal_handler field of the zend_closure struct.
So return func1->internal_function.handler == func2->internal_function.handler;
could never return true for internal functions.
We need to keep zend_fcc_closure_equals_ex() as the ABI is frozen, but it probably
makes sense to clean this all up in master.
I'll definitely write some docs about zend_closure after I finished the FCI/FCC ones as this is
incredibly confusing.