History log of /PHP-8.0/Zend/zend_execute.c (Results 126 – 150 of 1661)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


# 52d31bf1 03-Sep-2019 Nikita Popov

Don't perform coercions in internal func return type assertion

The returned value must match the specified type exactly, as we
can't perform any coercions in non-debug builds.

F

Don't perform coercions in internal func return type assertion

The returned value must match the specified type exactly, as we
can't perform any coercions in non-debug builds.

Fix incorrect stub for easter_date() that slipped through the
assertion for this reason...

show more ...


Revision tags: php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9
# 0038db22 26-Aug-2019 Nikita Popov

Avoid duplicate "non well-formed" warning

The arginfo checking code for internal functions should not generate
this warning, as it will be thrown by zpp.


Revision tags: php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1
# d1fd4607 06-Aug-2019 Dmitry Stogov

Inline zend_zval_ptr() in executor explicitely (only on hot paths)


Revision tags: php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8
# 99d4b2bd 24-Jul-2019 Nikita Popov

Mark _get_zval_ptr_deref as unused


# 57d9b94d 24-Jul-2019 Dmitry Stogov

Simplify TMP/VAR operand releasing


Revision tags: php-7.4.0beta1
# 9e4603f7 24-Jul-2019 Nikita Popov

Try to fix macos build

By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with

Try to fix macos build

By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with a value (what it actually is) and
sometimes as a conditionally defined constant (which it isn't, but
which still worked thanks to the specializer). Switch to only
treating it as a constant with a value.

show more ...


Revision tags: php-7.2.21RC1, php-7.3.8RC1
# 0ba7c3ea 11-Jul-2019 Nikita Popov

Deprecate array_key_exists() on objects


# ee582820 16-Jul-2019 Dmitry Stogov

Separate "cold" and common unspecialized code


# a0f450a0 16-Jul-2019 Nikita Popov

Remove unused _get_zval_ptr_cv_BP_VAR_UNSET function

To fix the macos -Werror build.


# 1d4c3842 16-Jul-2019 Dmitry Stogov

Delay IS_UNDEF checks


# ef1a1a06 11-Jul-2019 Dmitry Stogov

Separate "cold" parts of comparison instructions


# c42b7dd6 10-Jul-2019 Nikita Popov

Throw notice on array access on illegal type

No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like

while ([$key, $value] =

Throw notice on array access on illegal type

No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like

while ([$key, $value] = yield $it->next()) { ... }

where silent null access may be desirable.

No effort is made to suppress multiple notices in access chains
likes $x[0][0][0], because the technical complexity this causes
does not seem worthwhile.

RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container

show more ...


# 2bca35ea 10-Jul-2019 Nikita Popov

Rename support_strings to !is_list

In preparation for more behavior that depends on whether it it is
a list() access. Using support_strings for that would be
confusing.


Revision tags: php-7.4.0alpha3
# 48ca5a1e 05-Jul-2019 Dmitry Stogov

Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP


12345678910>>...67