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


# 4463acb9 10-Oct-2019 Nikita Popov

Explicitly check for exceptions in by-ref obj prop assign

Relying on setting ERROR if an exception happened during the
property address fetch is both a bit fragile and may pessimize

Explicitly check for exceptions in by-ref obj prop assign

Relying on setting ERROR if an exception happened during the
property address fetch is both a bit fragile and may pessimize
other codepaths that will check for exceptions in the VM. Adding
an extra exception check instead, which should also allow us to
drop the use of ERROR in this area in master.

show more ...


# 382f9b28 10-Oct-2019 Nikita Popov

Fix leak on "Cannot assign by reference to overloaded object" error


# f6f32f2c 09-Oct-2019 Dmitry Stogov

SAMRT BRANCH improvement.

Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruct

SAMRT BRANCH improvement.

Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruction, the same information is encoded into SMART BRANH result_type.

show more ...


# 21148679 08-Oct-2019 Nikita Popov

Handle "non well formed" exception during ZPP

Previously if the "non well formed" notice was converted into an
exception we'd still end up executing the function.

Also drop the

Handle "non well formed" exception during ZPP

Previously if the "non well formed" notice was converted into an
exception we'd still end up executing the function.

Also drop the now unnecessary EG(exception) checks in the engine.

Additionally remote a bogus exception in zend_is_callable: It
should only be writing to error, but not directly throwing.

show more ...


# 31c3b0c7 08-Oct-2019 Dmitry Stogov

Fixed Zend/tests/bug70785.phpt on builds wothout global regesters


# eec04f6b 08-Oct-2019 Dmitry Stogov

Encapsulate all SMART BRANCH related logic inside macros. Result of SMART BRANCH may be uninitialized (on exception).


# ad3ddf46 08-Oct-2019 Nikita Popov

Fixed bug #78644

Make sure the initialize the result of FETCH_OBJ_UNSET operations.
I'm using a NULL value rather than ERROR here, because the latter
no longer exists in master.


# 57670c67 07-Oct-2019 Nikita Popov

Check num required args is correct in debug builds

Also replace the assertion failure with an E_CORE_ERROR that
includes the function name, so these are easier to debug.


# 2f92957f 01-Oct-2019 Nikita Popov

Convert some notices to warnings

Part of https://wiki.php.net/rfc/engine_warnings.


# 01fc1a30 27-Sep-2019 Nikita Popov

Remove most uses of the ERROR type

It is now only used to signal exceptions for property reads. ERROR
zvals are never returned back to the VM anymore, so there's no
need to check for

Remove most uses of the ERROR type

It is now only used to signal exceptions for property reads. ERROR
zvals are never returned back to the VM anymore, so there's no
need to check for them when receiving a VAR.

Also return MAY_BE_ERROR, as ERROR is now no longer relevant for
inference.

show more ...


# e8b0163e 27-Sep-2019 Nikita Popov

Promote write "use scalar as array" warning to Error


# 0ebf2bdb 26-Sep-2019 Nikita Popov

Convert "Illegal offset type" warnings to exceptions


# f2b09969 26-Sep-2019 Nikita Popov

Convert "cannot add element" warning to exception


# a66c60cc 26-Sep-2019 Nikita Popov

Throw Error when writing property of non-object

This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed pr

Throw Error when writing property of non-object

This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed properites: We no longer need to check that a
property is convertible to stdClass if such a conversion might
take place indirectly due to a nested property write.

Additionally OBJ_W style operations now no longer modify the
object operand, and as such we no longer need to treat op1 as a
def in SSA form.

The next step would be to actually compile the whole LHS of OBJ_W
operations in R rather than W mode, but that causes issues with
SimpleXML, whose object handlers depend on the current compilation
structure.

Part of https://wiki.php.net/rfc/engine_warnings.

show more ...


# 0c7124e6 23-Sep-2019 Christoph M. Becker

Add check_only parameter to get_closure handler

`get_closure` handlers are called to check whether an object is
callable, and to actually get the closure, respectively. The behavior

Add check_only parameter to get_closure handler

`get_closure` handlers are called to check whether an object is
callable, and to actually get the closure, respectively. The behavior
of the handler might differ for these two cases, particularly the
handler may throw in the latter case, but should not in the former.

Therefore we add a `check_only` parameter, to be able to distinguish
the desired purpose.

show more ...


# 6276dd82 23-Sep-2019 Nikita Popov

Use ZEND_TYPE_IS_SET() when checking for property types

Instead of a simple if or 0 comparison. This would no longer work
if zend_type is a struct.


# d7ae1236 23-Sep-2019 Nikita Popov

Canonicalize typed properties error message

We have lots of other typed properties related error messages of
the form "assign X to typed property Y::$z of type A", so use th
same for

Canonicalize typed properties error message

We have lots of other typed properties related error messages of
the form "assign X to typed property Y::$z of type A", so use th
same format for the primary message as well. Special-casing things
like classes and nullability is not going to scale with future
type-system extensions, and I don't think it really adds clarity
either.

show more ...


# 9e8ba789 19-Sep-2019 Nikita Popov

Change representation of zend_type from type code to MAY_BE_* mask

This switches zend_type from storing a single IS_* type code to
storing a MAY_BE_* type mask. Right now most code still

Change representation of zend_type from type code to MAY_BE_* mask

This switches zend_type from storing a single IS_* type code to
storing a MAY_BE_* type mask. Right now most code still assumes
that there is only a single type in the mask (or two together
with MAY_BE_NULL). But this will make it a lot simpler to introduce
union types.

An additional advantage (and why I'm doing this separately), is
that a number of special cases no longer need to be handled
separately: We can do a single mask & (1 << type) check to handle
all simple types, booleans (true|false) and null.

show more ...


# cdd4e591 18-Sep-2019 Nikita Popov

Don't make argument nullable based on AST null initializer

Closes GH-4720.


Revision tags: php-7.4.0RC2
# 51d9f32d 12-Sep-2019 Dmitry Stogov

Fixed bug #78531 (Crash when using undefined variable as object


# 697266a8 12-Sep-2019 Dmitry Stogov

Eliminate checks using ZEND_CONST_COND() macro


Revision tags: php-7.2.23RC1, php-7.3.10RC1
# ee4b11c6 05-Sep-2019 Nikita Popov

Detect calls to abstract methods in get_method() already

Instead of checking for this during DO_FCALL, already detect this
case during get_method()/get_static_method(), similar to visibi

Detect calls to abstract methods in get_method() already

Instead of checking for this during DO_FCALL, already detect this
case during get_method()/get_static_method(), similar to visibility
checks.

This causes a minor difference in behavior, in that arguments will
no longer be evaluated. I think this is correct though (and consistent
with visibility errors).

show more ...


# b6f76aca 04-Sep-2019 Nikita Popov

Improve exception handling for abstract/deprecated calls

Reuse existing arg freeing loop instead of duplicating it.

Additionally also handle deprecated in DO_FCALL_BY_NAME.


# 4bb72827 04-Sep-2019 Nikita Popov

Fix handling of abstract/deprecated exception

The exception mechanism assumes that exceptions from DO_FCALL are
already happening after the function call. This means that we are
curr

Fix handling of abstract/deprecated exception

The exception mechanism assumes that exceptions from DO_FCALL are
already happening after the function call. This means that we are
currently leaking the passed arguments, and I think we can also
corrupt the VM stack due to incorrect frame linking in some cases
(there are assertion failures if the VM stack page size is reduced).

Instead handle the stack frame freeing manually for this special
case.

show more ...


12345678910>>...71