#
0c65b396 |
| 10-Apr-2023 |
Dmitry Stogov |
Allow FETCH_OBJ_W and FETCH_STATIC_PROP_W to return INDIRECT/UNDEF zval for uninitialized typed properties (#11048)
|
#
4e0bd036 |
| 23-Mar-2023 |
Ilija Tovilo |
Reset EG(trampoline).op_array.last_var that FFI may modify Closes GH-10916
|
#
d03025bf |
| 07-Jan-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-10251: Assertion `(flag & (1<<3)) == 0' failed. zend_get_property_guard previously assumed that at least "str" has a pre-computed hash. This is not always the case, for example wh
Fix GH-10251: Assertion `(flag & (1<<3)) == 0' failed. zend_get_property_guard previously assumed that at least "str" has a pre-computed hash. This is not always the case, for example when a string is created by bitwise operations, its hash is not set. Instead of forcing a computation of the hashes, drop the hash comparison. Closes GH-10254 Co-authored-by: Changochen <changochen1@gmail.com> Signed-off-by: George Peter Banyard <girgias@php.net>
show more ...
|
Revision tags: php-8.1.7RC1 |
|
#
11057372 |
| 10-Mar-2022 |
Ilija Tovilo |
Disallow assigning reference to unset readonly property Closes GH-7942 Closes GH-8188 |
#
96e3a9d3 |
| 09-Jun-2022 |
Nicolas Grekas |
Fix RC=1 references of declared properties when casting objects to arrays Fixes GH-8655. Closes GH-8737. |
Revision tags: php-8.1.4RC1, php-8.1.3, php-8.1.2RC1 |
|
#
ef2fd0e5 |
| 24-Nov-2021 |
Remi Collet |
fix [-Wstrict-prototypes] buid warnings |
Revision tags: php-8.1.0, php-7.3.33, php-7.3.32 |
|
#
f81f8744 |
| 28-Sep-2021 |
Dmitry Stogov |
zend_std_get_static_method() should return NULL in case of exception thrown from user error handler |
Revision tags: php-7.3.31 |
|
#
47961839 |
| 17-Sep-2021 |
Nikita Popov |
Add missing scope check for readonly prop initialization If the initializing assignment is an array append we will go through the UNDEF codepath of get_property_ptr_ptr, which did not ve
Add missing scope check for readonly prop initialization If the initializing assignment is an array append we will go through the UNDEF codepath of get_property_ptr_ptr, which did not verify that the initialization scope is valid.
show more ...
|
Revision tags: php-7.3.30 |
|
#
3eb97a45 |
| 22-Jul-2021 |
Nikita Popov |
Always use separate static_members_table When running without opcache, static_members_table is shared with default_static_members_table. This is visible in reflection output, because
Always use separate static_members_table When running without opcache, static_members_table is shared with default_static_members_table. This is visible in reflection output, because ReflectionProperty::getDefaultValue() will return the current value, rather than the default value. Address this by never sharing the table, which matches the behavior we already see under opcache. Fixes bug #80821. Closes GH-7299.
show more ...
|
#
ae8647d9 |
| 20-Jul-2021 |
Levi Morrison |
Remove leading underscore for _zend_hash_find_known_hash (#7260) Convert zend_hash_find_ex(..., 1) to zend_hash_find_known_hash(...) Convert zend_hash_find_ex(..., 0) to zend_hash_find(.
Remove leading underscore for _zend_hash_find_known_hash (#7260) Convert zend_hash_find_ex(..., 1) to zend_hash_find_known_hash(...) Convert zend_hash_find_ex(..., 0) to zend_hash_find(...) Also add serializable changes to UPGRADING.INTERNALS summary
show more ...
|
#
c50f4dec |
| 20-Jul-2021 |
Nikita Popov |
Fix typo in comment [ci skip] |
Revision tags: php-7.3.29 |
|
#
6780aaa5 |
| 02-Jun-2021 |
Nikita Popov |
Implement readonly properties Add support for readonly properties, for which only a single initializing assignment from the declaring scope is allowed. RFC: https://wiki.php.net
Implement readonly properties Add support for readonly properties, for which only a single initializing assignment from the declaring scope is allowed. RFC: https://wiki.php.net/rfc/readonly_properties_v2 Closes GH-7089.
show more ...
|
#
59a5f89f |
| 15-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' * PHP-8.0: Undef slot before destroying in unset_property
|
#
567e53ea |
| 15-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Undef slot before destroying in unset_property
|
#
ebd3a210 |
| 15-Jul-2021 |
Nikita Popov |
Undef slot before destroying in unset_property We need to make sure that destructors can't access the partially destroyed property. Do the same we do in HTs. Fixes oss-fuzz #362
Undef slot before destroying in unset_property We need to make sure that destructors can't access the partially destroyed property. Do the same we do in HTs. Fixes oss-fuzz #36205.
show more ...
|
#
5f8ed776 |
| 12-Jul-2021 |
Nikita Popov |
Fix GC of object properties HT We partially fixed this in bug #78379, but still don't handle the case where the properties array is marked as grey first, which causes a delref to not
Fix GC of object properties HT We partially fixed this in bug #78379, but still don't handle the case where the properties array is marked as grey first, which causes a delref to not be performed later. Fix this by treating the object properties HT the same way as other refcounted values, including addrefs/delrefs. The object dtor code already handles properties HT with NULL GC type, so out of order destruction should not be a problem. Fixes oss-fuzz #36023.
show more ...
|
#
a80360db |
| 09-Jul-2021 |
Nikita Popov |
Deprecate direct access to static trait members Static trait members may only be accessed through a class in which the trait is used, not directly on the trait. A complication h
Deprecate direct access to static trait members Static trait members may only be accessed through a class in which the trait is used, not directly on the trait. A complication here is that we should not store static methods/properties for which a deprecation is triggered in a cache slot. As the check for this is simple and cheap, I'm handling this in the cache slot population code in the VM. The alternative would be to pass the cache slot down into the fetching code. Part of https://wiki.php.net/rfc/deprecations_php_8_1.
show more ...
|
#
cdbe39b1 |
| 09-Jul-2021 |
Nikita Popov |
Remove unnecessary property name unmangling The property name isn't mangled in this context. Unmangling would only be necessary if we used the name stored in the property_info. |
#
2fe242db |
| 09-Jul-2021 |
Nikita Popov |
Remove leftover handling of PHP4 constructors This seems to be mapping ParentClass::ParentClass() to ParentClass::__construct(), but only for non-__construct ctors, which don't exist
Remove leftover handling of PHP4 constructors This seems to be mapping ParentClass::ParentClass() to ParentClass::__construct(), but only for non-__construct ctors, which don't exist anymore.
show more ...
|
#
53fba3a1 |
| 02-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' * PHP-8.0: Fixed bug #80173
|
#
4e66e6a7 |
| 02-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fixed bug #80173
|
#
bdc60fa7 |
| 02-Jul-2021 |
Nikita Popov |
Fixed bug #80173 The analysis in the bug report wasn't correct (at least not in this case -- there may still be a more general problem here), the issue was that write_property return
Fixed bug #80173 The analysis in the bug report wasn't correct (at least not in this case -- there may still be a more general problem here), the issue was that write_property returned the original variable_ptr rather than the zend_assign_to_variable() return value, which will DEREF the variable before overwriting it.
show more ...
|
#
a76d35ab |
| 25-May-2021 |
Nikita Popov |
Remove commented code from get_method handler |
#
2aac6160 |
| 04-May-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' * PHP-8.0: Don't treat failed assignment as initialization
|
#
398cfb98 |
| 04-May-2021 |
Nikita Popov |
Don't treat failed assignment as initialization Only reset the uninitialized property flag once the type check has succeeded. Previously the property was treated as unset rather than
Don't treat failed assignment as initialization Only reset the uninitialized property flag once the type check has succeeded. Previously the property was treated as unset rather than uninitialized after a failed assignment. Noticed this edge-case while working on accessors...
show more ...
|