#
f2e199e8 |
| 25-Feb-2024 |
Máté Kocsis |
Implement "support doc comments for internal classes and functions" (#13266) Fixes #13130
|
#
2f605820 |
| 13-Feb-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Workaround ZTS persistent resource crashes (PHP 8.3 and lower) For master (8.4-dev) I merged GH-13381. But that PR changes public API of TSRM, so cannot be used on lower branches.
Workaround ZTS persistent resource crashes (PHP 8.3 and lower) For master (8.4-dev) I merged GH-13381. But that PR changes public API of TSRM, so cannot be used on lower branches. This patch is a safe workaround for the issue, in combination with a pre-existing fix using `ifdef ZTS + if (module_started)` inside pgsql and odbc. The idea is to delay unloading modules until the persistent resources are destroyed. This will keep the destructor code accessible in memory. This is not a proper fix on its own, because we still need the workaround of not accessing globals after module destruction. The proper fix is in master. Closes GH-13388.
show more ...
|
#
87edeed3 |
| 13-Jan-2024 |
Michael Voříšek |
Remove UNEXPECTED from typed prop checks Closes GH-13143
|
#
631bc816 |
| 06-Feb-2024 |
Ilija Tovilo |
Implement stackless internal function calls Co-authored-by: Dmitry Stogov <dmitry@zend.com> Closes GH-12461
|
#
513224cf |
| 10-Jan-2024 |
ju1ius |
prevents using resource as a zend_type Closes #13102
|
#
a8c6c616 |
| 07-Oct-2023 |
Jakub Zelenka |
Fix GH-9921: Loading ext in FPM config does not register module handlers Closes GH-12377
|
#
af3d2f7e |
| 18-Oct-2023 |
Ilija Tovilo |
Fix double-free of doc_comment when overriding static property via trait When redeclaring an overridden static property with a trait we're removing the property from the class. However,
Fix double-free of doc_comment when overriding static property via trait When redeclaring an overridden static property with a trait we're removing the property from the class. However, because the property itself does not belong to the class we must not free its associated data. This issue is exposed by 9a250cc9d6 in PHP 8.3+ because duplicate static properties in traits are no longer skipped, but redeclared. Fixes GH-12468
show more ...
|
#
cdfa0168 |
| 19-Oct-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Avoid refcounted copy in _object_properties_init() for internal classes (#12474) This currently uses ZVAL_COPY_OR_DUP, which copies the value and handles refcounting. However, internal c
Avoid refcounted copy in _object_properties_init() for internal classes (#12474) This currently uses ZVAL_COPY_OR_DUP, which copies the value and handles refcounting. However, internal classes cannot have refcounted default properties because of constraints imposed by zend_declare_typed_property(). So copying the value is sufficient. While this doesn't really improve the performance for our benchmarks, it improves performance for cases where a lot of temporary internal objects are instantiated. For example, when instantiating DOM classes: DOM objects are transient, so lots of temporary objects are created.
show more ...
|
#
d8631493 |
| 06-Oct-2023 |
George Peter Banyard |
Zend: Add ZPP F type check for callables that do not free trampolines As refetching it with the new FCC API does get tedious
|
#
9b6afd88 |
| 25-Sep-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Make sure core module has number 0 (#12272) * Make sure core module has number 0 Some places, possibly also outside PHP, assume the core extension has module number 0. After 8a8
Make sure core module has number 0 (#12272) * Make sure core module has number 0 Some places, possibly also outside PHP, assume the core extension has module number 0. After 8a812c3fda this wasn't the case anymore as reported in [1]. Fix it by changing how the next module ID is computed. [1] https://github.com/php/php-src/pull/12246#issuecomment-1731432377 * Add assertion * Add test
show more ...
|
#
8a812c3f |
| 19-Sep-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-12215: Module entry being overwritten causes type errors in ext/dom (PHP 8.4) When we try to load an extension multiple times, we still overwrite the type, module number, and hand
Fix GH-12215: Module entry being overwritten causes type errors in ext/dom (PHP 8.4) When we try to load an extension multiple times, we still overwrite the type, module number, and handle. If the module number is used to indicate module boundaries (e.g. in reflection and in dom, see e.g. dom_objects_set_class_ex), then all sorts of errors can happen. In the case of ext/dom, OP's error happens because the following happens: - The property handler is set up incorrectly in dom_objects_set_class_ex() because the wrong module number is specified. The class highest in the hierarchy is DOMNode, so the property handler is incorrectly set to that of DOMNode instead of DOMDocument. - The documentElement property doesn't exist on DOMNode, it only exists on DOMDocument, so it tries to read using zend_std_read_property(). As there is no user property called documentElement, that read operation returns an undef value. However, the type is still checked, resulting in the strange exception. Solve this by changing the API such that the data is only overwritten if it's owned data. Closes GH-12246.
show more ...
|
#
f957335c |
| 19-Sep-2023 |
Ilija Tovilo |
Move static property check to assert (#12239) Staticness incompatiblity must error before attempting to declare the property.
|
#
910f579f |
| 18-Sep-2023 |
Florian Sowade |
Fix GH-12207 memory leak of doc blocks of static properties When declaring the same static property with a doc block in a class and in a trait, the doc block of the property in the class
Fix GH-12207 memory leak of doc blocks of static properties When declaring the same static property with a doc block in a class and in a trait, the doc block of the property in the class is leaked. While at it, possibly fix doc comment for internal classes. Close GH-12238
show more ...
|
#
53aa53f4 |
| 24-Aug-2023 |
Jakub Zelenka |
Introduce Zend guard recursion protection This PR introduces a new way of recursion protection in JSON, var_dump and friends. It fixes issue in master for __debugInfo and also improves
Introduce Zend guard recursion protection This PR introduces a new way of recursion protection in JSON, var_dump and friends. It fixes issue in master for __debugInfo and also improves perf for jsonSerializable in some cases. More info can be found in GH-10020. Closes GH-11812
show more ...
|
#
7f1c3bf0 |
| 18-Aug-2023 |
ju1ius |
Adds support for DNF types in internal functions and properties (#11969) Note that this does not add support for items generated by gen_stubs, only for items registered dynamically via
Adds support for DNF types in internal functions and properties (#11969) Note that this does not add support for items generated by gen_stubs, only for items registered dynamically via the Zend API. Closes GH-10120
show more ...
|
#
80e90ad7 |
| 07-Mar-2023 |
George Peter Banyard |
Add number or str ZPP macros
|
#
d5ad7510 |
| 08-Jun-2023 |
George Peter Banyard |
More usage of known zend_str instead of C string (#11381)
|
#
99fa740a |
| 06-Jun-2023 |
George Peter Banyard |
Use common function for TypeError on illegal offset access (#10544) This merges all usages of emitting an offset TypeError into a new ZEND_API function zend_illegal_container_offset(cons
Use common function for TypeError on illegal offset access (#10544) This merges all usages of emitting an offset TypeError into a new ZEND_API function zend_illegal_container_offset(const zend_string* container, const zval *offset, int type); Where the container should represent the type on which the access is attempted (e.g. string, array) The offset zval that is used, where the error message will display its type The type of access, which should be a BP_VAR_* constant, to get special message for isset/empty/unset
show more ...
|
#
9ce6980b |
| 05-Jun-2023 |
George Peter Banyard |
Use known zend_string pointer to check for equality instead of C strings (#11370) * Compare __invoke magic method name with known zend_string pointer * Compare __sleep/__wakeup magi
Use known zend_string pointer to check for equality instead of C strings (#11370) * Compare __invoke magic method name with known zend_string pointer * Compare __sleep/__wakeup magic method name with known zend_string pointer
show more ...
|
#
414f71a9 |
| 16-Apr-2023 |
Máté Kocsis |
Typed class constants (#10444) RFC: https://wiki.php.net/rfc/typed_class_constants Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com> Co-Authored-By: Bob Weinand <31
Typed class constants (#10444) RFC: https://wiki.php.net/rfc/typed_class_constants Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com> Co-Authored-By: Bob Weinand <3154871+bwoebi@users.noreply.github.com> Co-Authored-By: Ilija Tovilo <ilija.tovilo@me.com>
show more ...
|
#
c9d728cb |
| 04-Apr-2023 |
Dmitry Stogov |
Revert "Zend/zend_types.h: move `zend_rc_debug` to `zend_rc_debug.h`" This reverts commit d6e95041e291f1f41e1da43e616c6354705464d3.
|
#
574e5311 |
| 09-Mar-2023 |
Máté Kocsis |
Micro optimization: readonly properties always have a type
|
#
6a711535 |
| 05-Mar-2023 |
Ilija Tovilo |
Fix gcc warnings in zend_API.c with --disable-debug (#10786) -Warray-bounds complains about malloc(sizeof(zend_arg_info) * num_args) being smaller than zend_function when dereferencing r
Fix gcc warnings in zend_API.c with --disable-debug (#10786) -Warray-bounds complains about malloc(sizeof(zend_arg_info) * num_args) being smaller than zend_function when dereferencing reg_function.
show more ...
|
#
3bcf2c37 |
| 28-Feb-2023 |
Máté Kocsis |
Allow readonly properties to be reinitialized once during cloning (#10389) RFC: https://wiki.php.net/rfc/readonly_amendments
|
#
d6e95041 |
| 13-Jan-2023 |
Max Kellermann |
Zend/zend_types.h: move `zend_rc_debug` to `zend_rc_debug.h` `zend_rc_debug` is not a type and does not really belong in `zend_types.h`; this allows using `ZEND_RC_MOD_CHECK()` without
Zend/zend_types.h: move `zend_rc_debug` to `zend_rc_debug.h` `zend_rc_debug` is not a type and does not really belong in `zend_types.h`; this allows using `ZEND_RC_MOD_CHECK()` without including the huge `zend_types.h` header and allows decoupling circular header dependencies.
show more ...
|