From: Ilia Alshanetsky Date: Mon, 13 Feb 2006 14:49:26 +0000 (+0000) Subject: Fixed bug #36337 (ReflectionProperty fails to return correct visibility). X-Git-Tag: php-5.1.3RC1~111 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e05eec591b8f1d9fdf0530c040ad3a684966a92;p=php Fixed bug #36337 (ReflectionProperty fails to return correct visibility). --- diff --git a/NEWS b/NEWS index e9fa1cb533..636bce0ab1 100644 --- a/NEWS +++ b/NEWS @@ -24,6 +24,8 @@ PHP NEWS - Fixed bug #36359 (splFileObject::fwrite() doesn't write when no data length specified). (Tony) - Fixed bug #36351 (parse_url() does not parse numeric paths properly). (Ilia) +- Fixed bug #36337 (ReflectionProperty fails to return correct visibility). + (Ilia) - Fixed bug #36334 (Added missing documentation about realpath cache INI settings). (Ilia) - Fixed bug #36308 (ReflectionProperty::getDocComment() does not reflect diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 411e0ece15..d871e36459 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -3560,14 +3560,10 @@ ZEND_METHOD(reflection_property, __construct) if (!(property_info->flags & ZEND_ACC_PRIVATE)) { /* we have to seach the class hierarchy for this (implicit) public or protected property */ - zend_class_entry *tmp_ce = ce->parent; + zend_class_entry *tmp_ce = ce; zend_property_info *tmp_info; - while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, name_str, name_len + 1, (void **) &tmp_info) == SUCCESS) { - if (tmp_info->flags & ZEND_ACC_PRIVATE) { - /* private in super class => NOT the same property */ - break; - } + while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, name_str, name_len + 1, (void **) &tmp_info) != SUCCESS) { ce = tmp_ce; property_info = tmp_info; tmp_ce = tmp_ce->parent;