if (callee_func->type == ZEND_INTERNAL_FUNCTION) {
zval *zv;
- func_info_t *info;
+ zend_string *lcname = Z_STR_P(CRT_CONSTANT_EX(call_info->caller_op_array, call_info->caller_init_opline, call_info->caller_init_opline->op2));
- zv = zend_hash_find_ex(&func_info, lcname, 1);
- if (zv) {
- if (!call_info->callee_func->common.scope && (zv = zend_hash_find_ex(&func_info, Z_STR_P(CRT_CONSTANT_EX(call_info->caller_op_array, call_info->caller_init_opline, call_info->caller_init_opline->op2, ssa->rt_constants)), 1))) {
- info = Z_PTR_P(zv);
++ if (!call_info->callee_func->common.scope
++ && (zv = zend_hash_find_ex(&func_info, lcname, 1))) {
+ func_info_t *info = Z_PTR_P(zv);
if (UNEXPECTED(zend_optimizer_is_disabled_func(info->name, info->name_len))) {
ret = MAY_BE_NULL;
} else if (info->info_func) {
/* }}} */
static zend_function *zend_test_class_static_method_get(zend_class_entry *ce, zend_string *name) /* {{{ */ {
- zend_internal_function *fptr;
-
- if (EXPECTED(EG(trampoline).common.function_name == NULL)) {
- fptr = (zend_internal_function *) &EG(trampoline);
- } else {
- fptr = emalloc(sizeof(zend_internal_function));
+ if (zend_string_equals_literal_ci(name, "test")) {
- zend_internal_function *fptr = emalloc(sizeof(zend_internal_function));
- fptr->type = ZEND_OVERLOADED_FUNCTION;
++ zend_internal_function *fptr;
++
++ if (EXPECTED(EG(trampoline).common.function_name == NULL)) {
++ fptr = (zend_internal_function *) &EG(trampoline);
++ } else {
++ fptr = emalloc(sizeof(zend_internal_function));
++ }
++ memset(fptr, 0, sizeof(zend_internal_function));
++ fptr->type = ZEND_INTERNAL_FUNCTION;
+ fptr->num_args = 1;
- fptr->arg_info = NULL;
+ fptr->scope = ce;
+ fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_STATIC;
- fptr->function_name = name;
++ fptr->function_name = zend_string_copy(name);
+ fptr->handler = ZEND_FN(zend_test_func);
- zend_set_function_arg_flags((zend_function*)fptr);
+
+ return (zend_function*)fptr;
}
- memset(fptr, 0, sizeof(zend_internal_function));
- fptr->type = ZEND_INTERNAL_FUNCTION;
- fptr->num_args = 1;
- fptr->scope = ce;
- fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_STATIC;
- fptr->function_name = zend_string_copy(name);
- fptr->handler = ZEND_FN(zend_test_func);
-
- return (zend_function*)fptr;
+ return zend_std_get_static_method(ce, name, NULL);
}
/* }}} */
/* }}} */
static const zend_function_entry zend_test_class_methods[] = {
+ ZEND_ME(_ZendTestClass, is_object, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
+ ZEND_ME(_ZendTestClass, __toString, NULL, ZEND_ACC_DEPRECATED)
ZEND_FE_END
};