#
67318e91 |
| 11-Oct-2024 |
Ilija Tovilo |
Fix op2 caching for static properties op2.num may contain other flags, like ZEND_FETCH_CLASS_EXCEPTION. These currently circumvent caching. Once the property is cached, these flags have
Fix op2 caching for static properties op2.num may contain other flags, like ZEND_FETCH_CLASS_EXCEPTION. These currently circumvent caching. Once the property is cached, these flags have no influence on the result, so it doesn't seem like this was done on purpose. Closes GH-16380
show more ...
|
#
60562175 |
| 14-Oct-2024 |
Ilija Tovilo |
Split expression
|
#
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
|
#
c65e042c |
| 16-Sep-2024 |
Arnaud Le Blanc |
Fix zend_get_property_info_for_slot() for lazy objects (#15855) zend_get_property_info_for_slot(obj, slot) assumes that 'slot' belongs to 'obj', but that may not be the case for lazy proxies
Fix zend_get_property_info_for_slot() for lazy objects (#15855) zend_get_property_info_for_slot(obj, slot) assumes that 'slot' belongs to 'obj', but that may not be the case for lazy proxies. Fortunately, the property info is often already available in path when it is needed. For other cases, I make zend_get_property_info_for_slot() aware of lazy objects, and add zend_get_property_info_for_slot_self() for cases where the 'slot' is known to belong to the object itself. Fixes oss-fuzz #71446
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 ...
|
#
daeb3295 |
| 28-Aug-2024 |
Ilija Tovilo |
Improve readonly avis error (GH-15618) We don't track whether protected(set) is implicit, so for now always point out when the property is readonly in the error message.
|
#
cd255007 |
| 28-Aug-2024 |
Arnaud Le Blanc |
Do not scan generator frames more than once (#15330)
|
#
8df557ac |
| 27-Aug-2024 |
Ilija Tovilo |
[RFC] Asymmetric visibility v2 (GH-15063) Co-authored-by: Larry Garfield <larry@garfieldtech.com>
|
#
c02c1d44 |
| 08-Aug-2024 |
Arnaud Le Blanc |
Change YIELD/YIELD_FROM to do not increment opline (#15328) YIELD and YIELD_FROM increment opline before returning, but in most places we need the opline to point to the YIELD and YIELD_
Change YIELD/YIELD_FROM to do not increment opline (#15328) YIELD and YIELD_FROM increment opline before returning, but in most places we need the opline to point to the YIELD and YIELD_FROM. Here I change YIELD / YIELD_FROM to not increment opline. This simplifies the code and fixes GH-15275 in a better way. Closes GH-15328
show more ...
|
#
c767fec2 |
| 10-Aug-2024 |
Arnaud Le Blanc |
Fix crash during GC of suspended generator delegate (#15275)
|
#
46ee0fb3 |
| 09-Aug-2024 |
Ilija Tovilo |
Disallow indirect modification on readonly properties within __clone() (#15012) Indirect modification isn't allowed in __construct() because it allows references to leak, so it doesn't m
Disallow indirect modification on readonly properties within __clone() (#15012) Indirect modification isn't allowed in __construct() because it allows references to leak, so it doesn't make much sense to allow it in __clone().
show more ...
|
#
fdbe910b |
| 16-Jul-2024 |
Ilija Tovilo |
Fix indirect readonly error messages (#14979) $obj->ro[] = 42;, passByRef($obj->ro); and the likes should emit an indirect modification error message. This message already existed but wa
Fix indirect readonly error messages (#14979) $obj->ro[] = 42;, passByRef($obj->ro); and the likes should emit an indirect modification error message. This message already existed but was used inconsistently.
show more ...
|
#
a26ec58f |
| 16-Jul-2024 |
Ilija Tovilo |
De-duplicate readonly property modification error message (#14972)
|
#
780a8280 |
| 14-Jul-2024 |
Ilija Tovilo |
[RFC] Property hooks (#13455) RFC: https://wiki.php.net/rfc/property-hooks Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
#
0bd26021 |
| 03-Jul-2024 |
Arnaud Le Blanc |
Fix stack limit on ASAN/MSAN (#14771) Increase the reserved stack size in ASAN builds, as instrumentation use more stack. Increase the max allowed stack size in some tests, and enable th
Fix stack limit on ASAN/MSAN (#14771) Increase the reserved stack size in ASAN builds, as instrumentation use more stack. Increase the max allowed stack size in some tests, and enable these tests under ASAN. Use __builtin_frame_address(0), instead of some stack variable, when we need a stack address, as ASAN may store local variables outside of the real stack.
show more ...
|
#
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 ...
|
#
c03196a5 |
| 29-Jun-2024 |
David Carlier |
Fix GH-14712: segfault on invalid object. If the extension does not allow to get a property pointer (like PDORow object), we fallback to the read property cb anyway.
|
#
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 ...
|
#
998bce11 |
| 07-Jun-2024 |
Ilija Tovilo |
Show enum cases in errors Closes GH-14496
|
#
b3e26c30 |
| 19-Apr-2024 |
Ilija Tovilo |
Fix missing handling of CALLABLE_CONVERT in cleanup_unfinished_calls() Fixes GH-14003
|
#
f2e199e8 |
| 25-Feb-2024 |
Máté Kocsis |
Implement "support doc comments for internal classes and functions" (#13266) Fixes #13130
|
#
87edeed3 |
| 13-Jan-2024 |
Michael Voříšek |
Remove UNEXPECTED from typed prop checks Closes GH-13143
|
#
631bc816 |
| 06-Feb-2024 |
Ilija Tovilo |
Implement stackless internal function calls Co-authored-by: Dmitry Stogov <dmitry@zend.com> Closes GH-12461
|
#
fe064d7f |
| 19-Jan-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-13142: Undefined variable name is shortened when contains \0 Uses the new %S formatter and introduces the necessary changes and helpers.
|