History log of /PHP-8.4/Zend/zend_execute.c (Results 226 – 250 of 1799)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2b279b42 31-Jan-2020 Dmitry Stogov

We don't need "safe" destruction anymore


# db7193f3 31-Jan-2020 Dmitry Stogov

Fixed bug #79094 (Crashing when running recursion function)


# 9ec1ee59 10-Jan-2020 Nikita Popov

Add support for deprecating constants

Internal constants can be marked as CONST_DEPRECATED, in which
case accessing them will throw a deprecation warning.

For now this is only s

Add support for deprecating constants

Internal constants can be marked as CONST_DEPRECATED, in which
case accessing them will throw a deprecation warning.

For now this is only supported on global constants, not class
constants. Complain to me if you need to deprecate a class
constant...

Closes GH-5072.

show more ...


# bd197728 16-Jan-2020 Nikita Popov

Use zend_type inside type lists

Instead of having a completely independent encoding for type list
entries. This is going to use more memory, but I'm not particularly
concerned about

Use zend_type inside type lists

Instead of having a completely independent encoding for type list
entries. This is going to use more memory, but I'm not particularly
concerned about that, as type unions that contain multiple classes
should be uncommon. On the other hand, this allows us to treat
top-level types and types inside lists mostly the same.

A new ZEND_TYPE_FOREACH macros allows to transparently treat list
and non-list types the same way. I'm not using it everywhere it could be
used for now, just the places that seemed most obvious.

Of course, this will make any future type system changes much simpler,
as it will not be necessary to duplicate all logic two times.

show more ...


# d0d1654a 08-Jan-2020 Nikita Popov

Fix #49555: Improve "function must be a string" error message

Be more specific for the individual cases and provide relevant
type information.


# bfe3f934 07-Jan-2020 George Peter Banyard

Add warning and convert to exception in string offset assignment:

Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned t

Add warning and convert to exception in string offset assignment:

Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned to the offset if provided
a needle that is longer than one byte.

[1] https://wiki.php.net/rfc/engine_warnings

show more ...


# f77747b0 30-Dec-2019 Nikita Popov

Properly propagate url_stat exceptions during include

Make sure we abort operations early, and that we don't emit
additional warnings or errors if an exception has been thrown.


# 527ad1d8 19-Dec-2019 Nikita Popov

Avoid signed integer overflow in string offset check

Cast to size_t before performing operations instead of afterwards.


# df08d6bf 18-Dec-2019 Nikita Popov

Fix leak in assign_ref with function

As far as I can see, the retval copying is already done in all
callers of this function, so it should not be duplicated here.


# 0301ab70 18-Dec-2019 Nikita Popov

Fix const/cv freeing on failed reference assignment


# 7194825c 17-Dec-2019 Nikita Popov

Fix leak of dynamic property name in address helper


# 03d1c788 09-Dec-2019 Dmitry Stogov

Export zend_init_func_run_time_cache()


# aed2bf7a 06-Dec-2019 Nikita Popov

Remove unused function


# 0bac7854 06-Dec-2019 Nikita Popov

Optimize return type checking

Split off the fast-path case and avoid redundant checks.


Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# 999e32b6 25-Sep-2019 Nikita Popov

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same t

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same time. Additionall, zend_type_list is
introduced as a new kind of pointer payload, which is used to store
multiple class types. Each of the class types is a tagged pointer,
which may be either a class name or class entry. The latter is only
used for typed properties, while arguments/returns will instead use
cache slots. A type list can contain a mix of both names and CEs at
the same time, as not all classes may be resolvable.

One thing this is missing is support for union types in arginfo
and stubs, which I want to handle separately.

I've also dropped the special object code from the JIT implementation
for now -- I plan to add this back in a different form at a later time.
For now I did not want to include non-trivial JIT changes together
with large functional changes.

Another possible piece of follow-up work is to implement "iterable"
as an internal alias for "array|Traversable". I believe this will
eliminate quite a few special-cases that had to be implemented.

Closes GH-4838.

show more ...


Revision tags: php-7.2.23, php-7.3.10
# ac4e0f08 20-Sep-2019 Nikita Popov

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

To avoid increasing the size of arginfo structures, the
pass_by_reference and is_variadic fields are now stored as part of
the type_mask (8-bit are reserved for custom use).

Different types of pointer payloads are distinguished based on bits
in the type_mask.

show more ...


# 14bdb0cf 04-Nov-2019 Máté Kocsis

Fix consistency issues with array accesses warnings/exceptions

* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "res

Fix consistency issues with array accesses warnings/exceptions

* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "resource used as offset" warning for isset() as well.
* Make array_key_exists() behavior with regard to different key
types consistent with isset() and normal array accesses. All key
types now use the usual coercions and array/object keys throw
TypeError.

Closes GH-4887.

show more ...


# c46b2ed6 04-Nov-2019 Nikita Popov

Remove support for array_key_exists() with objects


# bd7b1afd 25-Oct-2019 Nikita Popov

Check type is set when verifying variadic args

Weird that there was no test for this...

This code is somewhat inefficient, because it will be performed
for every arg, rather tha

Check type is set when verifying variadic args

Weird that there was no test for this...

This code is somewhat inefficient, because it will be performed
for every arg, rather than only once.

show more ...


# d71a6ee5 24-Oct-2019 Nikita Popov

Remove unnecessary type checks in verify_missing_return_type

We don't emit VERIFY_RETURN_TYPE for void functions, so there's
no need to check it here. It's always an error.


# 9666d7a7 24-Oct-2019 Nikita Popov

Don't check ZEND_TYPE_IS_SET() in zend_check_type()

Usually this function is only used if we already know that there is
a type. Add checks to the places where we don't.


# f8413887 23-Oct-2019 Nikita Popov

Don't autoload when checking property types

Noticed while working on union types: We do not load argument and
return types during type checks, but we do load property types.

I'm

Don't autoload when checking property types

Noticed while working on union types: We do not load argument and
return types during type checks, but we do load property types.

I'm normalizing the behavior towards the existing status quo (not
loading), though we may consider loading everywhere (all types,
and instanceof) in order to properly support class aliases.

show more ...


# fe6c420b 23-Oct-2019 Nikita Popov

JIT: Handle typed refs in assign dim


# e80934d7 17-Oct-2019 Nikita Popov

Pass cache slot when printing type errors

Instead of using a separate ce.


# 5a076e67 10-Oct-2019 Nikita Popov

Return error_zval form get_property_ptr_ptr on exception

This goes in the reverse direction of 4463acb9513dfb62206760c49b3da1fe4d92f40a.
After looking around a bit, it seems that we alre

Return error_zval form get_property_ptr_ptr on exception

This goes in the reverse direction of 4463acb9513dfb62206760c49b3da1fe4d92f40a.
After looking around a bit, it seems that we already check for
Z_ISERROR_P() on the get_property_ptr_ptr return value in other places.
So do this in zend_fetch_property_address() as well, and also make
sure that EG(error_zval) is indeed returned on exception in
get_property_ptr_ptr.

In particular, this fixes the duplicate exceptions that we used to
get because first get_property_ptr_ptr threw one and then
read_property throws the same exception again.

show more ...


12345678910>>...72