From:             cataphract
Operating system: 
PHP version:      5.3SVN-2010-10-26 (SVN)
Package:          Scripting Engine problem
Bug Type:         Bug
Bug description:ZEND_ACC_IMPLICIT_PUBLIC should be removed or used in 
zend_get_property_info

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 bug report at http://bugs.php.net/bug.php?id=53172&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=53172&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=53172&r=trysnapshot53
Try a snapshot (trunk):              
http://bugs.php.net/fix.php?id=53172&r=trysnapshottrunk
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=53172&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=53172&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=53172&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=53172&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=53172&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=53172&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=53172&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=53172&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=53172&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=53172&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=53172&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=53172&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=53172&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=53172&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=53172&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=53172&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=53172&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=53172&r=mysqlcfg

Reply via email to