History log of /PHP-8.3/Zend/zend_execute.c (Results 51 – 75 of 1775)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


12345678910>>...71