History log of /PHP-8.1/Zend/zend_object_handlers.c (Results 1 – 25 of 637)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 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 ...

12345678910>>...26