mirror of
https://github.com/php/php-src.git
synced 2025-08-16 22:18:50 +02:00
Merge branch 'PHP-7.4'
This commit is contained in:
commit
ec694a9e81
2 changed files with 20 additions and 40 deletions
|
@ -1206,26 +1206,16 @@ ZEND_FUNCTION(get_class_methods)
|
|||
(((mptr->common.fn_flags & ZEND_ACC_PROTECTED) &&
|
||||
zend_check_protected(mptr->common.scope, scope))
|
||||
|| ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) &&
|
||||
scope == mptr->common.scope)))) {
|
||||
size_t len = ZSTR_LEN(mptr->common.function_name);
|
||||
|
||||
/* Do not display old-style inherited constructors */
|
||||
if (!key) {
|
||||
scope == mptr->common.scope)))
|
||||
) {
|
||||
if (mptr->type == ZEND_USER_FUNCTION &&
|
||||
(!mptr->op_array.refcount || *mptr->op_array.refcount > 1) &&
|
||||
key && !same_name(key, mptr->common.function_name)) {
|
||||
ZVAL_STR_COPY(&method_name, zend_find_alias_name(mptr->common.scope, key));
|
||||
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
|
||||
} else {
|
||||
ZVAL_STR_COPY(&method_name, mptr->common.function_name);
|
||||
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
|
||||
} else if ((mptr->common.fn_flags & ZEND_ACC_CTOR) == 0 ||
|
||||
mptr->common.scope == ce ||
|
||||
zend_binary_strcasecmp(ZSTR_VAL(key), ZSTR_LEN(key), ZSTR_VAL(mptr->common.function_name), len) == 0) {
|
||||
|
||||
if (mptr->type == ZEND_USER_FUNCTION &&
|
||||
(!mptr->op_array.refcount || *mptr->op_array.refcount > 1) &&
|
||||
!same_name(key, mptr->common.function_name)) {
|
||||
ZVAL_STR_COPY(&method_name, zend_find_alias_name(mptr->common.scope, key));
|
||||
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
|
||||
} else {
|
||||
ZVAL_STR_COPY(&method_name, mptr->common.function_name);
|
||||
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &method_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
|
|
|
@ -471,36 +471,26 @@ static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, char
|
|||
count = zend_hash_num_elements(&ce->function_table) - count_static_funcs;
|
||||
if (count > 0) {
|
||||
zend_function *mptr;
|
||||
zend_string *key;
|
||||
smart_str method_str = {0};
|
||||
|
||||
count = 0;
|
||||
ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->function_table, key, mptr) {
|
||||
ZEND_HASH_FOREACH_PTR(&ce->function_table, mptr) {
|
||||
if ((mptr->common.fn_flags & ZEND_ACC_STATIC) == 0
|
||||
&& ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce))
|
||||
{
|
||||
size_t len = ZSTR_LEN(mptr->common.function_name);
|
||||
|
||||
/* Do not display old-style inherited constructors */
|
||||
if ((mptr->common.fn_flags & ZEND_ACC_CTOR) == 0
|
||||
|| mptr->common.scope == ce
|
||||
|| !key
|
||||
|| zend_binary_strcasecmp(ZSTR_VAL(key), ZSTR_LEN(key), ZSTR_VAL(mptr->common.function_name), len) == 0)
|
||||
zend_function *closure;
|
||||
/* see if this is a closure */
|
||||
if (obj && is_closure_invoke(ce, mptr->common.function_name)
|
||||
&& (closure = zend_get_closure_invoke_method(Z_OBJ_P(obj))) != NULL)
|
||||
{
|
||||
zend_function *closure;
|
||||
/* see if this is a closure */
|
||||
if (obj && is_closure_invoke(ce, mptr->common.function_name)
|
||||
&& (closure = zend_get_closure_invoke_method(Z_OBJ_P(obj))) != NULL)
|
||||
{
|
||||
mptr = closure;
|
||||
} else {
|
||||
closure = NULL;
|
||||
}
|
||||
smart_str_appendc(&method_str, '\n');
|
||||
_function_string(&method_str, mptr, ce, ZSTR_VAL(sub_indent));
|
||||
count++;
|
||||
_free_function(closure);
|
||||
mptr = closure;
|
||||
} else {
|
||||
closure = NULL;
|
||||
}
|
||||
smart_str_appendc(&method_str, '\n');
|
||||
_function_string(&method_str, mptr, ce, ZSTR_VAL(sub_indent));
|
||||
count++;
|
||||
_free_function(closure);
|
||||
}
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
smart_str_append_printf(str, "\n%s - Methods [%d] {", indent, count);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue