#
625f1649 |
| 20-Jul-2022 |
Bob Weinand |
Include internal functions in the observer API There are two main motivations to this: a) The logic for handling internal and userland observation can be unified. b) Unwinding of obs
Include internal functions in the observer API There are two main motivations to this: a) The logic for handling internal and userland observation can be unified. b) Unwinding of observed functions on a bailout does notably not include observers. Even if users of observers were to ensure such handling themselves, it would be impossible to retain the relative ordering - either the user has to unwind all internal observed frames before the automatic unwinding (zend_observer_fcall_end_all) or afterwards, but not properly interleaved. 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 |
|
#
7aadbcb8 |
| 24-May-2022 |
Ilija Tovilo |
GH-8344 Fetch properties of enums in const expressions
|
#
af15923b |
| 08-Jun-2022 |
Rowan Tommins |
Extend deprecation notices to is_callable($foo) and callable $foo Implements https://wiki.php.net/rfc/partially-supported-callables-expand-deprecation-notices so that uses of "self" and
Extend deprecation notices to is_callable($foo) and callable $foo Implements https://wiki.php.net/rfc/partially-supported-callables-expand-deprecation-notices so that uses of "self" and "parent" in is_callable() and callable type constraints now raise a deprecation notice, independent of the one raised when and if the callable is actually invoked. A new flag is added to the existing check_flags parameter of zend_is_callable / zend_is_callable_ex, for use in internal calls that would otherwise repeat the notice multiple times. In particular, arguments to internal function calls are checked first based on arginfo, and then again during ZPP, so the former suppresses the deprecation notice. Some existing tests which raised this deprecation have been updated to avoid the syntax, but the existing version retained for maximum regression coverage until it is made an error. With thanks to Juliette Reinders Folmer for the RFC and initial investigation. Closes GH-8823.
show more ...
|
#
f9055907 |
| 08-Jul-2022 |
George Peter Banyard |
Add support for Disjoint Normal Form (DNF) types (#8725) RFC: https://wiki.php.net/rfc/dnf_types This allows to combine union and intersection types together in the following form (
Add support for Disjoint Normal Form (DNF) types (#8725) RFC: https://wiki.php.net/rfc/dnf_types This allows to combine union and intersection types together in the following form (A&B)|(X&Y)|T but not of the form (X|A)&(Y|B) or (X|A)&(Y|B)|T. * Improve union type parsing Co-authored-by: Sara Golemon <pollita@php.net>
show more ...
|
Revision tags: 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, php-8.1.5RC1, php-8.0.18RC1, php-8.1.4, php-8.0.17 |
|
#
11057372 |
| 10-Mar-2022 |
Ilija Tovilo |
Disallow assigning reference to unset readonly property Closes GH-7942 Closes GH-8188
|
#
89688b11 |
| 08-Jun-2022 |
Joe Rowell |
Add function exposing HAVE_GCC_GLOBAL_REGS (#8359)
|
#
b40ae808 |
| 07-Jun-2022 |
George Peter Banyard |
Convert iterable into an internal alias for Traversable|array (#7309) This does a compile time transformation of ``iterable`` into ``Traversable|array`` which simplifies some of the LSP vari
Convert iterable into an internal alias for Traversable|array (#7309) This does a compile time transformation of ``iterable`` into ``Traversable|array`` which simplifies some of the LSP variance handling. The arginfo generation script from stubs is updated to produce a union type when it encounters the type ``iterable`` Extension functions which do not regenerate the arginfo, or write them manually are still supported by mimicking the compile time transformation while registering the function. Type Reflection is preserved for single ``iterable`` (and ``?iterable``) to produce a ReflectionNamedType with name ``iterable``, however usage of ``iterable`` in union types will be converted to ``array|Traversable``
show more ...
|
#
280fd680 |
| 01-Jun-2022 |
Levi Morrison |
Make vm_interrupt and timed_out atomic (#8327) This is done by adding a new zend_atomic_bool type. The type definition is only available for compiler alignment and size info; it shou
Make vm_interrupt and timed_out atomic (#8327) This is done by adding a new zend_atomic_bool type. The type definition is only available for compiler alignment and size info; it should be treated as opaque and only the zend_atomic_bool_* family of functions should be used. Note that directly using atomic_bool is complicated. All C++ compilers stdlibs that I checked typedef atomic_bool to std::atomic<bool>, which can't be used in an extern "C" section, and there's at least one usage of this in core, and probably more outside of it. So, instead use platform specific functions, preferring compiler intrinsics.
show more ...
|
#
8620788c |
| 30-Mar-2022 |
Max Kellermann |
Zend/zend_execute: remove duplicate deinitialization code This code duplication was introduced by commit 85f35a8fc1e ("Separate unspecializeble code of INCLIDE_OR_EVAL into helper functi
Zend/zend_execute: remove duplicate deinitialization code This code duplication was introduced by commit 85f35a8fc1e ("Separate unspecializeble code of INCLIDE_OR_EVAL into helper functions") for no obvious reason.
show more ...
|
#
b9e895bc |
| 31-Mar-2022 |
Max Kellermann |
Replace memcmp() with zend_string functions (#8216) * ext/oci8: use zend_string_equals() Eliminate duplicate code. * main/php_variables: use zend_string_equals_literal()
Replace memcmp() with zend_string functions (#8216) * ext/oci8: use zend_string_equals() Eliminate duplicate code. * main/php_variables: use zend_string_equals_literal() Eliminate duplicate code. * Zend/zend_string: add zend_string_equals_cstr() Allows eliminating duplicate code. * Zend, ext/{opcache,standard}, main/output: use zend_string_equals_cstr() Eliminate duplicate code. * Zend/zend_string: add zend_string_starts_with() * ext/{opcache,phar,spl,standard}: use zend_string_starts_with() This adds missing length checks to several callers, e.g. in cache_script_in_shared_memory(). This is important when the zend_string is shorter than the string parameter, when memcmp() happens to check backwards; this can result in an out-of-bounds memory access.
show more ...
|
Revision tags: php-8.1.4RC1, php-8.0.17RC1, php-8.1.3, php-8.0.16, php-7.4.28, php-8.1.3RC1, php-8.0.16RC1 |
|
#
71847837 |
| 01-Feb-2022 |
Dmitry Stogov |
Prevent array modification if it's captured by user error handler during index conversion Fixes oss-fuzz #44235
|
Revision tags: php-8.1.2, php-8.0.15, php-8.1.2RC1, php-8.0.15RC1 |
|
#
aab52968 |
| 23-Dec-2021 |
Dmitry Stogov |
micro-optimization
|
#
79fac32d |
| 16-Dec-2021 |
Dmitry Stogov |
Don't call zend_attach/detach_symbol_table() for op_arrays without local variables
|
Revision tags: php-8.0.14, php-8.1.1, php-7.4.27 |
|
#
b16fc350 |
| 14-Dec-2021 |
Dmitry Stogov |
Move common code into helper
|
#
c787f42c |
| 13-Dec-2021 |
Dmitry Stogov |
Combine ADDREF/DELREF
|
#
cbc0b1af |
| 13-Dec-2021 |
Dmitry Stogov |
Fix array clobering by user error handler Fixes oss-fuzz #42234
|
#
08f1d470 |
| 07-Dec-2021 |
Dmitry Stogov |
Separate "cold" code
|
#
5459ed4c |
| 06-Dec-2021 |
Dmitry Stogov |
Fix use after free because of data clobbering by user error handler Fixes oss-fuzz #41692
|
#
1d054b3f |
| 03-Dec-2021 |
Dmitry Stogov |
Fix array object clobbering by user error handler Fixes oss-fuss #41605 and #41610
|
Revision tags: php-8.1.1RC1 |
|
#
37ac707c |
| 02-Dec-2021 |
Dmitry Stogov |
Add missing zend_string_release_ex(tmp, 0) and cleanup - use GC_DELREF() instead of zend_string_release_ex() - add expectations for exceptional cases - replace IS_ARRAY_IMMUTABLE by
Add missing zend_string_release_ex(tmp, 0) and cleanup - use GC_DELREF() instead of zend_string_release_ex() - add expectations for exceptional cases - replace IS_ARRAY_IMMUTABLE by IS_STR_INTERNED
show more ...
|
#
df16da36 |
| 02-Dec-2021 |
Dmitry Stogov |
Fixed ext/bz2/tests/005.phpt test failure introduesed by 09547c64c28f81957d986b9c6b995b28d1098db6
|
Revision tags: php-8.0.14RC1 |
|
#
4595a57e |
| 01-Dec-2021 |
Dmitry Stogov |
Fix clobering of operand by error handler in assignment to string offset (optimization and JIT support)
|
#
09547c64 |
| 01-Dec-2021 |
Dmitry Stogov |
Fix clobering of operand by error handler in assignment to string offset In some cases new code requires two reallocations insead of one. Fixes oss-fuzz #31716, #36196, #39739 and #
Fix clobering of operand by error handler in assignment to string offset In some cases new code requires two reallocations insead of one. Fixes oss-fuzz #31716, #36196, #39739 and #40002
show more ...
|
#
9f6ab786 |
| 01-Dec-2021 |
Dmitry Stogov |
Use proper functions
|
#
b594a95a |
| 30-Nov-2021 |
Dmitry Stogov |
Fixed crash in ZEND_ASSIGN_DIM_OP because of array cloberring by user error handler Fixes oss-fuzz #36214
|