History log of /PHP-8.4/Zend/zend_execute.c (Results 151 – 175 of 1799)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# ab989441 22-Feb-2021 Nikita Popov

Fix trampoline leak on dynamic static call of non-static method

Fixes oss-fuzz #30317.


# 6dd85f83 22-Feb-2021 Nikita Popov

Fixed bug #80781

zend_find_array_dim_slow() may throw, make sure to handle this.
This backports the code we already use for this on PHP-8.0,
and also backports an exception check tha

Fixed bug #80781

zend_find_array_dim_slow() may throw, make sure to handle this.
This backports the code we already use for this on PHP-8.0,
and also backports an exception check that makes this easier to
catch.

show more ...


# 7b7d9983 15-Feb-2021 Nikita Popov

Fix symtable cache being used while cleaning symtable

We need to first clean the symtable and then check whether a cache
slot is available for it. Otherwise, it may happen that a destruc

Fix symtable cache being used while cleaning symtable

We need to first clean the symtable and then check whether a cache
slot is available for it. Otherwise, it may happen that a destructor
runs while cleaning the table and uses up all the remaining slots
in the cache.

This is particularly insidious because once we overflow the cache,
the first pointer we modify is symtable_cache_ptr, making it hard
to understand what happened after the fact.

Fixes oss-fuzz #30815.

show more ...


# b10416a6 30-Nov-2020 Nikita Popov

Deprecate passing null to non-nullable arg of internal function

This deprecates passing null to non-nullable scale arguments of
internal functions, with the eventual goal of making the b

Deprecate passing null to non-nullable arg of internal function

This deprecates passing null to non-nullable scale arguments of
internal functions, with the eventual goal of making the behavior
consistent with userland functions, where null is never accepted
for non-nullable arguments.

This change is expected to cause quite a lot of fallout. In most
cases, calling code should be adjusted to avoid passing null. In
some cases, PHP should be adjusted to make some function arguments
nullable. I have already fixed a number of functions before landing
this, but feel free to file a bug if you encounter a function that
doesn't accept null, but probably should. (The rule of thumb for
this to be applicable is that the function must have special behavior
for 0 or "", which is distinct from the natural behavior of the
parameter.)

RFC: https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg

Closes GH-6475.

show more ...


# d80d9185 11-Feb-2021 Nikita Popov

Don't throw additional Error in require_once if exception already thrown

As pointed out in comments on bug #66216.


# ef516481 10-Feb-2021 Dmitry Stogov

Use zend_type.ce_cache__ptr for caching class resulution during argument/result type checks


# 4b79dba9 09-Feb-2021 Dmitry Stogov

Added Inheritance Cache.

This is a new transparent technology that eliminates overhead of PHP class inheritance.

PHP classes are compiled and cached (by opcahce) separately, howeve

Added Inheritance Cache.

This is a new transparent technology that eliminates overhead of PHP class inheritance.

PHP classes are compiled and cached (by opcahce) separately, however their "linking" was done at run-time - on each request. The process of "linking" may involve a number of compatibility checks and borrowing methods/properties/constants form parent and traits. This takes significant time, but the result is the same on each request.

Inheritance Cache performs "linking" for unique set of all the depending classes (parent, interfaces, traits, property types, method types involved into compatibility checks) once and stores result in opcache shared memory. As a part of the this patch, I removed limitations for immutable classes (unresolved constants, typed properties and covariant type checks). So now all classes stored in opcache are "immutable". They may be lazily loaded into process memory, if necessary, but this usually occurs just once (on first linking).

The patch shows 8% improvement on Symphony "Hello World" app.

show more ...


# d4aff254 09-Feb-2021 Nikita Popov

Use E_ERROR to report arginfo/zpp mismatch

When E_CORE_ERROR is used, we don't get correct file/line information.


# 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 ...


# 973138f3 06-Jan-2021 Nikita Popov

Add support for union types for internal functions

This closes the last hole in the supported types for internal
function arginfo types. It's now possible to represent unions of
mult

Add support for union types for internal functions

This closes the last hole in the supported types for internal
function arginfo types. It's now possible to represent unions of
multiple classes. This is done by storing them as TypeA|TypeB and
PHP will then convert this into an appropriate union type list.

Closes GH-6581.

show more ...


# 22793884 03-Dec-2020 Nikita Popov

Remove some INDIRECT handling in VM


# 27e25088 21-Dec-2020 Nikita Popov

Fix bug #80537

This is an unavoidable breaking change to both the type and
parameter name.

The assertion that was supposed to prevent this was overly lax
and accepted any ob

Fix bug #80537

This is an unavoidable breaking change to both the type and
parameter name.

The assertion that was supposed to prevent this was overly lax
and accepted any object type for string parameters.

show more ...


# 77325c44 04-Dec-2020 Nikita Popov

Fix removal of type source during unserialization

Missed a check for info in this code. Add it, and add an assertion
in type source removal to make it easier to catch this issue.

Fix removal of type source during unserialization

Missed a check for info in this code. Add it, and add an assertion
in type source removal to make it easier to catch this issue.

Fixes oss-fuzz #28208 and #28257.

show more ...


# 841b00f6 30-Nov-2020 Dmitry Stogov

Preallocate stack space for JIT in execute_ex() to eliminate JIT prologue/epilogue.


# 085e16c3 30-Oct-2020 Nikita Popov

Fix signed integer overflow

Fixes oss-fuzz #26763.


# 078df4d1 21-Oct-2020 Nikita Popov

Don't allow passing unknown named params to class without ctor

See also https://externals.io/message/112083.

Closes GH-6364.


Revision tags: php-7.4.11, php-7.3.23, php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1
# 12306728 16-Jul-2020 Sammy Kaye Powers

Add system ID entropy API

The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the sys

Add system ID entropy API

The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the system ID for each hook. This allows extensions to identify that changes have been made to the engine since the last PHP process restart.

Closes GH-5871

show more ...


# 34bb5ba2 18-Sep-2020 Nikita Popov

Remove support for EXT_NOP

This is an annoying edge case that regularly gets broken. As we're
not aware of significant users of this API, and there are other
ways to hook this, remov

Remove support for EXT_NOP

This is an annoying edge case that regularly gets broken. As we're
not aware of significant users of this API, and there are other
ways to hook this, remove support for EXT_NOP.

show more ...


# e3d0bc0a 17-Sep-2020 Nikita Popov

Fixed bug #80109

Skip over leading EXT_NOP, if it exists.


# 7e61c2ed 15-Sep-2020 Nikita Popov

Fix uninitialized run-time cache when resolving named param defaults

Fixes oss-fuzz #25676.


# 8f93709d 15-Sep-2020 Dmitry Stogov

micro-optimization


# 57a4a2c5 14-Sep-2020 Nikita Popov

Fixed bug #80096

We shouldn't assume that call->prev_execute_data is NULL here. The
value needs to be preserved for call chains.


# b7fe1b66 09-Sep-2020 Nikita Popov

Make argument type error message consistent for variadics

If an argument error refers to a variadic argument, we normally
do not print the name of the variadic (as it is not referring to

Make argument type error message consistent for variadics

If an argument error refers to a variadic argument, we normally
do not print the name of the variadic (as it is not referring to
an individual argument, but to the collection of all of them).
However, this was not the case for the userland argument type
error message, which did it's own formatting.

Closes GH-6101.

show more ...


# 7b0a0531 10-Sep-2020 Dmitry Stogov

JIT for ASSIGN_OBJ


# e9b47df1 10-Sep-2020 Dmitry Stogov

Fixed 32-bit JIT


12345678910>>...72