Bug #53172 [Opn->Csd]: ZEND_ACC_IMPLICIT_PUBLIC should be removed or used in zend_get_property_info
| From: | nikic@php.net | Date: | Wed, 08 Jan 2020 13:35:12 +0000 |
| Subject: | Bug #53172 [Opn->Csd]: ZEND_ACC_IMPLICIT_PUBLIC should be removed or used in zend_get_property_info | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-224777@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=53172&edit=1
ID: 53172
Updated by: nikic@php.net
Reported by: cataphract@php.net
Summary: ZEND_ACC_IMPLICIT_PUBLIC should be removed or used
in zend_get_property_info
-Status: Open
+Status: Closed
Type: Bug
Package: Scripting Engine problem
PHP Version: 5.3SVN-2010-10-26 (SVN)
-Assigned To:
+Assigned To: nikic
Block user comment: N
Private report: N
New Comment:
The flag has been removed in the meantime.
Previous Comments:
------------------------------------------------------------------------
[2010-10-26 20:25:48] cataphract@php.net
I recall the last paragraph, zend_get_property_info is not an alternative for reflection because of
the access checks (except for _adddynproperty).
------------------------------------------------------------------------
[2010-10-26 18:34:52] cataphract@php.net
Description:
------------
The status of the flag ZEND_ACC_IMPLICIT_PUBLIC is somewhat unclear. In the ZE:
* PHP 5.3 checks for it in a few places, but doesn't set it anymore as the body of
zend_do_declare_implicit_property is commented out.
* trunk retains only the definition of ZEND_ACC_IMPLICIT_PUBLIC, everything else is gone.
So it seems that the flag ZEND_ACC_IMPLICIT_PUBLIC, apparently originally used to signal dynamic
properties, is only used by the reflection extension. The reflection extension, not being able to
depend on the Zend Engine to set it, sets the flag itself when it finds a dynamic property, i.e. a
property that is in the object hash table but has no property_info (ReflectionProperty::__construct
and ReflectionClass::getProperty).
This would be unnecessary if zend_get_property_info set the flag ZEND_ACC_IMPLICIT_PUBLIC over here:
http://lxr.php.net/opengrok/xref/PHP_TRUNK/Zend/zend_object_handlers.c#310
In that case, the reflection extension could just call zend_get_property_info and not do directly
lookups in ce->properties_info. Though right now it would be possible to call
zend_get_property_info and check for equality to &EG(property_info), this is suboptimal.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=53172&edit=1