From: Dmitry Stogov Date: Thu, 21 Feb 2008 15:14:13 +0000 (+0000) Subject: Fixed bug #43483 (get_class_methods() does not list all visible methods) X-Git-Tag: php-5.2.6RC1~25 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7eb1befffe4f9ffaaedb0e627e8adfdca90d79db;p=php Fixed bug #43483 (get_class_methods() does not list all visible methods) --- diff --git a/NEWS b/NEWS index b18feed911..4cfd3ca76f 100644 --- a/NEWS +++ b/NEWS @@ -81,6 +81,8 @@ PHP NEWS is not available). (Ilia) - Fixed bug #43491 (Under certain conditions, file_exists() never returns). (Dmitry) +- Fixed bug #43483 (get_class_methods() does not list all visible methods). + (Dmitry) - Fixed bug #43482 (array_pad() does not warn on very small pad numbers). (Ilia) - Fixed bug #43457 (Prepared statement with incorrect parms doesn't throw diff --git a/Zend/tests/bug43483.phpt b/Zend/tests/bug43483.phpt new file mode 100644 index 0000000000..0cfbfe8780 --- /dev/null +++ b/Zend/tests/bug43483.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #43483 (get_class_methods() does not list all visible methods) +--FILE-- + +--EXPECT-- +Successfully called D::prot(). +Array +( + [0] => prot + [1] => test +) diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 2ddb0cbedd..bd84c263f1 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -867,7 +867,7 @@ ZEND_FUNCTION(get_class_methods) if ((mptr->common.fn_flags & ZEND_ACC_PUBLIC) || (EG(scope) && (((mptr->common.fn_flags & ZEND_ACC_PROTECTED) && - instanceof_function(EG(scope), mptr->common.scope TSRMLS_CC)) + zend_check_protected(mptr->common.scope, EG(scope))) || ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) && EG(scope) == mptr->common.scope)))) { char *key;