diff options
author | Stanislav Malyshev <stas@php.net> | 2003-07-03 09:18:41 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2003-07-03 09:18:41 +0000 |
commit | 5a7b07701bb0f20e62195e0d1a273601106181bf (patch) | |
tree | 840c4f5316ccacd23e1d610d58694f0dbcdb416e /Zend/zend_API.c | |
parent | 2f96c161df1aeba69cc677c171afc1b106105305 (diff) | |
download | php-git-5a7b07701bb0f20e62195e0d1a273601106181bf.tar.gz |
Fix bug #19859 - allow fast_call_user_function to support __call
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 70e7928b93..52e32af03d 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1535,12 +1535,18 @@ zend_bool zend_is_callable(zval *callable, zend_bool syntax_only, char **callabl if (ce) { lcname = zend_str_tolower_dup(Z_STRVAL_PP(method), Z_STRLEN_PP(method)); - if (zend_hash_exists(&ce->function_table, lcname, Z_STRLEN_PP(method)+1)) + if (zend_hash_exists(&ce->function_table, lcname, Z_STRLEN_PP(method)+1)) { retval = 1; + } + /* check for __call too */ + if (retval == 0 && ce->__call != 0) { + retval = 1; + } efree(lcname); } - } else if (callable_name) + } else if (callable_name) { *callable_name = estrndup("Array", sizeof("Array")-1); + } } break; |