History log of /php-src/Zend/zend_execute.h (Results 1 – 25 of 435)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 6f7f32c3 03-Oct-2024 Christoph M. Becker

Declare zend_call_stack_size_error() as ZEND_API

This is necessary at least on Windows to be able to actually call the
function from a different module (in this case php8phpdbg.dll could

Declare zend_call_stack_size_error() as ZEND_API

This is necessary at least on Windows to be able to actually call the
function from a different module (in this case php8phpdbg.dll could not
be build).

Closes GH-16204.

show more ...


# 443aa29d 25-Sep-2024 Arnaud Le Blanc

Support stack limit in phpdbg SAPI

Fixes GH-16041
Closes GH-16055


# 3f913c12 02-Oct-2024 Dmitry Stogov

Implement JIT for ZEND_FETCH_STATIC_PROP_* and improve interpretation (#16157)

* Implement JIT for ZEND_FETCH_STATIC_PROP_* and improve interpretation

* Revert incorrect change

Implement JIT for ZEND_FETCH_STATIC_PROP_* and improve interpretation (#16157)

* Implement JIT for ZEND_FETCH_STATIC_PROP_* and improve interpretation

* Revert incorrect change

* Use FASTCALL calling convention

* Use EMPTY_SWITCH_DEFAULT_CASE

* Move the loading of the property info into zend_jit_uninit_static_prop()

show more ...


# 6435bb5a 04-Sep-2024 Levi Morrison

Interrupt while internal frame is on the stack (#14627)

* Check VM interrupt while internal frame is on top

* Use tab instead of spaces

* fix frame used in interrupt and re

Interrupt while internal frame is on the stack (#14627)

* Check VM interrupt while internal frame is on top

* Use tab instead of spaces

* fix frame used in interrupt and refactor

* remove unused failures for zend_jit_check_timeout

* Fix JIT support

Co-authored-by: Bob Weinand <bobwei9@hotmail.com>

* Fix the missing store to vm_interrupt

* Rename new functions

* Special case zend_interrupt_function in JIT code

* refactor to use ZEND_VM_SET_OPCODE_NO_INTERRUPT

* Split atomic exchange into load + store

It is difficult to determine performance of atomics sometimes. In this
case, the separate load+store is still correct, and a load does not
cause a modification, and might be faster for some platforms than an
exchange. A load+store is slower than an exchange, but we're fine
trading the penalty to the slow path and keeping the happy path faster.

---------

Co-authored-by: Bob Weinand <bobwei9@hotmail.com>

show more ...


# 8df557ac 27-Aug-2024 Ilija Tovilo

[RFC] Asymmetric visibility v2 (GH-15063)

Co-authored-by: Larry Garfield <larry@garfieldtech.com>


# a26ec58f 16-Jul-2024 Ilija Tovilo

De-duplicate readonly property modification error message (#14972)


# 72c87469 02-Jul-2024 Benjamin Eberlei

RFC: Add `#[\Deprecated]` Attribute (#11293)

see https://wiki.php.net/rfc/deprecated_attribute

Co-authored-by: Tim Düsterhus <tim@tideways-gmbh.com>
Co-authored-by: Ilija Tovilo

RFC: Add `#[\Deprecated]` Attribute (#11293)

see https://wiki.php.net/rfc/deprecated_attribute

Co-authored-by: Tim Düsterhus <tim@tideways-gmbh.com>
Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>

show more ...


# 6a2c5318 15-Jun-2024 Bob Weinand

Optimize observers (#13649)

Inline the lookup whether a function is observed at all.
This strategy is also used for FRAMELESS calls. If the frameless call is observed, we instead allocat

Optimize observers (#13649)

Inline the lookup whether a function is observed at all.
This strategy is also used for FRAMELESS calls. If the frameless call is observed, we instead allocate a call frame and push the arguments, to call the the function afterwards.
Doing so is still a performance benefit as opposed to executing individual INIT_FCALL+SEND_VAL ops. Thus, even if the frameless call turns out to be observed, the call overhead is slightly lower than before.
If the internal function is not observed at all, the unavoidable overhead is fetching the FLF zend_function pointer and the run-time cache needs to be inspected.

As part of this work, it turned out to be most viable to put the result operand on the ZEND_OP_DATA instead of ZEND_FRAMELESS_ICALL_3, allowing seamless interoperability with the DO_ICALL opcode.
This is a bit unusual in comparison to all other ZEND_OP_DATA usages, but seems to not pose problems overall.

There is also a small issue resolved: trampolines would always use the ZEND_CALL_TRAMPOLINE_SPEC_OBSERVER function due to zend_observer_fcall_op_array_extension being set to -1 too late.

show more ...


# 631bc816 06-Feb-2024 Ilija Tovilo

Implement stackless internal function calls

Co-authored-by: Dmitry Stogov <dmitry@zend.com>

Closes GH-12461


# 73c5f36f 03-Aug-2023 Ilija Tovilo

Assert ptr_ptr value of TMP|CONST isn't used (#11865)

We require valid code for compilation to succeed, but these paths should always
be guarded by OPx_TYPE checks and never execute. Add

Assert ptr_ptr value of TMP|CONST isn't used (#11865)

We require valid code for compilation to succeed, but these paths should always
be guarded by OPx_TYPE checks and never execute. Add an assertion to verify.

show more ...


# f5c54fd8 23-May-2023 Ilija Tovilo

Fix access on NULL pointer in array_merge_recursive()

Closes GH-11303


# 6f63d4b2 19-Apr-2023 Ilija Tovilo

Fix -Wenum-int-mismatch warnings on gcc 13

Closes GH-11103


# 414f71a9 16-Apr-2023 Máté Kocsis

Typed class constants (#10444)

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

Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com>
Co-Authored-By: Bob Weinand <31

Typed class constants (#10444)

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

Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com>
Co-Authored-By: Bob Weinand <3154871+bwoebi@users.noreply.github.com>
Co-Authored-By: Ilija Tovilo <ilija.tovilo@me.com>

show more ...


# 0e706937 04-Apr-2023 Dmitry Stogov

Revert "Zend/zend_types.h: move `IS_*` to `zend_type_code.h`"

This reverts commit 0270a1e54c0285fa3c89ee2b0120073ef57ab5fa.


# fdbea4f3 03-Mar-2023 Ilija Tovilo

Add GC_DTOR/GC_DTOR_NO_REF macros


# b39107c7 16-Feb-2023 Ilija Tovilo

Delay destructor for zend_assign_to_typed_ref


# 915b2837 16-Feb-2023 Dmitry Stogov

Delay freeing of overwritten values in assignments

Fixes GH-10168


# bf123da5 04-Apr-2023 Tony Su

[Zend]: Fix unnecessary alignment in ZEND_CALL_FRAME_SLOT macro (#10988)

Alignment is not necessary while calculating slots reserved for
zend_execute_data and _zend_vm_stack.

ZE

[Zend]: Fix unnecessary alignment in ZEND_CALL_FRAME_SLOT macro (#10988)

Alignment is not necessary while calculating slots reserved for
zend_execute_data and _zend_vm_stack.

ZEND_STATIC_ASSERT ensures the correct alignment while code
compilation. Credit is to Ilija Tovilo.

PR: https://github.com/php/php-src/pull/10988

Signed-off-by: Tony Su <tao.su@intel.com>
Reviewed-by : Ilija Tovilo
Reviewed-by : Dmitry Stogov
Reviewed-by : Niels Dossche

show more ...


# 3bcf2c37 28-Feb-2023 Máté Kocsis

Allow readonly properties to be reinitialized once during cloning (#10389)

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


# 0270a1e5 21-Feb-2023 Max Kellermann

Zend/zend_types.h: move `IS_*` to `zend_type_code.h`

More decoupling of circular header dependencies.


# d5c649b3 23-Feb-2023 Max Kellermann

zend_compiler, ...: use `uint8_t` instead of `zend_uchar` (#10621)

`zend_uchar` suggests that the value is an ASCII character, but here,
it's about very small integers. This is misleadi

zend_compiler, ...: use `uint8_t` instead of `zend_uchar` (#10621)

`zend_uchar` suggests that the value is an ASCII character, but here,
it's about very small integers. This is misleading, so let's use a
C99 integer instead.

On all architectures currently supported by PHP, `zend_uchar` and
`uint8_t` are identical. This change is only about code readability.

show more ...


# 7b68ff46 16-Feb-2023 Ilija Tovilo

Revert "Fix GH-10168: heap-buffer-overflow at zval_undefined_cv"

This reverts commit 71ddede5655fe654002ae18af6a18e033f717287.


# d721dcc2 10-Feb-2023 Arnaud Le Blanc

Fix colletion of unfinished function call in fibers

Fixes GH-10496.

Co-authored-by: Bob Weinand <bobwei9@hotmail.com>


# 71ddede5 06-Feb-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-10168: heap-buffer-overflow at zval_undefined_cv

The problem is that we're using the variable_ptr in the opcode handler
*after* it has already been destroyed. The solution is to c

Fix GH-10168: heap-buffer-overflow at zval_undefined_cv

The problem is that we're using the variable_ptr in the opcode handler
*after* it has already been destroyed. The solution is to create a
specialised version of zend_assign_to_variable which takes in two
destination zval pointers.

Closes GH-10524

show more ...


# 47ed1904 28-Dec-2022 Ilija Tovilo

Fix use-after-free in write_property when object is released

Fixes GH-10169
Closes GH-10179


12345678910>>...18