Lines Matching refs:fcc

1033 				zend_fcall_info_cache *fcc = va_arg(*va, zend_fcall_info_cache *);  in zend_parse_arg_impl()  local
1038 fcc->function_handler = 0; in zend_parse_arg_impl()
1042 if (zend_fcall_info_init(arg, 0, fci, fcc, NULL, &is_callable_error) == SUCCESS) { in zend_parse_arg_impl()
1048 zend_release_fcall_info_cache(fcc); in zend_parse_arg_impl()
3658 … zend_class_entry *scope, zend_execute_data *frame, zend_fcall_info_cache *fcc, bool *strict_class… in zend_is_callable_check_class() argument
3677 fcc->called_scope = zend_get_called_scope(frame); in zend_is_callable_check_class()
3678 if (!fcc->called_scope || !instanceof_function(fcc->called_scope, scope)) { in zend_is_callable_check_class()
3679 fcc->called_scope = scope; in zend_is_callable_check_class()
3681 fcc->calling_scope = scope; in zend_is_callable_check_class()
3682 if (!fcc->object) { in zend_is_callable_check_class()
3683 fcc->object = zend_get_this_object(frame); in zend_is_callable_check_class()
3696 fcc->called_scope = zend_get_called_scope(frame); in zend_is_callable_check_class()
3697 if (!fcc->called_scope || !instanceof_function(fcc->called_scope, scope->parent)) { in zend_is_callable_check_class()
3698 fcc->called_scope = scope->parent; in zend_is_callable_check_class()
3700 fcc->calling_scope = scope->parent; in zend_is_callable_check_class()
3701 if (!fcc->object) { in zend_is_callable_check_class()
3702 fcc->object = zend_get_this_object(frame); in zend_is_callable_check_class()
3716 fcc->called_scope = called_scope; in zend_is_callable_check_class()
3717 fcc->calling_scope = called_scope; in zend_is_callable_check_class()
3718 if (!fcc->object) { in zend_is_callable_check_class()
3719 fcc->object = zend_get_this_object(frame); in zend_is_callable_check_class()
3726 fcc->calling_scope = ce; in zend_is_callable_check_class()
3727 if (scope && !fcc->object) { in zend_is_callable_check_class()
3733 fcc->object = object; in zend_is_callable_check_class()
3734 fcc->called_scope = object->ce; in zend_is_callable_check_class()
3736 fcc->called_scope = ce; in zend_is_callable_check_class()
3739 fcc->called_scope = fcc->object ? fcc->object->ce : ce; in zend_is_callable_check_class()
3751 ZEND_API void zend_release_fcall_info_cache(zend_fcall_info_cache *fcc) { in zend_release_fcall_info_cache() argument
3752 if (fcc->function_handler && in zend_release_fcall_info_cache()
3753 (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { in zend_release_fcall_info_cache()
3754 if (fcc->function_handler->common.function_name) { in zend_release_fcall_info_cache()
3755 zend_string_release_ex(fcc->function_handler->common.function_name, 0); in zend_release_fcall_info_cache()
3757 zend_free_trampoline(fcc->function_handler); in zend_release_fcall_info_cache()
3758 fcc->function_handler = NULL; in zend_release_fcall_info_cache()
3762 …heck_func(zval *callable, zend_execute_data *frame, zend_fcall_info_cache *fcc, bool strict_class,… in zend_is_callable_check_func() argument
3764 zend_class_entry *ce_org = fcc->calling_scope; in zend_is_callable_check_func()
3776 fcc->calling_scope = NULL; in zend_is_callable_check_func()
3801 fcc->function_handler = func; in zend_is_callable_check_func()
3832 fcc->calling_scope = ZSTR_GET_CE_CACHE(cname); in zend_is_callable_check_func()
3833 if (scope && !fcc->object) { in zend_is_callable_check_func()
3838 instanceof_function(scope, fcc->calling_scope)) { in zend_is_callable_check_func()
3839 fcc->object = object; in zend_is_callable_check_func()
3840 fcc->called_scope = object->ce; in zend_is_callable_check_func()
3842 fcc->called_scope = fcc->calling_scope; in zend_is_callable_check_func()
3845 fcc->called_scope = fcc->object ? fcc->object->ce : fcc->calling_scope; in zend_is_callable_check_func()
3848 …} else if (!zend_is_callable_check_class(cname, scope, frame, fcc, &strict_class, error, suppress_… in zend_is_callable_check_func()
3854 ftable = &fcc->calling_scope->function_table; in zend_is_callable_check_func()
3855 if (ce_org && !instanceof_function(ce_org, fcc->calling_scope)) { in zend_is_callable_check_func()
3856 …r, 0, "class %s is not a subclass of %s", ZSTR_VAL(ce_org->name), ZSTR_VAL(fcc->calling_scope->nam… in zend_is_callable_check_func()
3870 fcc->calling_scope = ce_org; in zend_is_callable_check_func()
3881 fcc->calling_scope && in zend_is_callable_check_func()
3883 fcc->function_handler = fcc->calling_scope->constructor; in zend_is_callable_check_func()
3884 if (fcc->function_handler) { in zend_is_callable_check_func()
3888 fcc->function_handler = Z_PTR_P(zv); in zend_is_callable_check_func()
3890 if ((fcc->function_handler->op_array.fn_flags & ZEND_ACC_CHANGED) && in zend_is_callable_check_func()
3894 instanceof_function(fcc->function_handler->common.scope, scope)) { in zend_is_callable_check_func()
3902 fcc->function_handler = priv_fbc; in zend_is_callable_check_func()
3907 if (!(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC) && in zend_is_callable_check_func()
3908 (fcc->calling_scope && in zend_is_callable_check_func()
3909 ((fcc->object && fcc->calling_scope->__call) || in zend_is_callable_check_func()
3910 (!fcc->object && fcc->calling_scope->__callstatic)))) { in zend_is_callable_check_func()
3912 if (fcc->function_handler->common.scope != scope) { in zend_is_callable_check_func()
3913 if ((fcc->function_handler->common.fn_flags & ZEND_ACC_PRIVATE) in zend_is_callable_check_func()
3914 || !zend_check_protected(zend_get_function_root_class(fcc->function_handler), scope)) { in zend_is_callable_check_func()
3916 fcc->function_handler = NULL; in zend_is_callable_check_func()
3923 if (fcc->object && fcc->calling_scope == ce_org) { in zend_is_callable_check_func()
3925 fcc->function_handler = zend_get_call_trampoline_func(ce_org, mname, 0); in zend_is_callable_check_func()
3929 fcc->function_handler = fcc->object->handlers->get_method(&fcc->object, mname, NULL); in zend_is_callable_check_func()
3930 if (fcc->function_handler) { in zend_is_callable_check_func()
3932 (!fcc->function_handler->common.scope || in zend_is_callable_check_func()
3933 !instanceof_function(ce_org, fcc->function_handler->common.scope))) { in zend_is_callable_check_func()
3934 zend_release_fcall_info_cache(fcc); in zend_is_callable_check_func()
3937 … call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0; in zend_is_callable_check_func()
3941 } else if (fcc->calling_scope) { in zend_is_callable_check_func()
3942 if (fcc->calling_scope->get_static_method) { in zend_is_callable_check_func()
3943 fcc->function_handler = fcc->calling_scope->get_static_method(fcc->calling_scope, mname); in zend_is_callable_check_func()
3945 fcc->function_handler = zend_std_get_static_method(fcc->calling_scope, mname, NULL); in zend_is_callable_check_func()
3947 if (fcc->function_handler) { in zend_is_callable_check_func()
3949 call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0; in zend_is_callable_check_func()
3950 if (call_via_handler && !fcc->object) { in zend_is_callable_check_func()
3953 instanceof_function(object->ce, fcc->calling_scope)) { in zend_is_callable_check_func()
3954 fcc->object = object; in zend_is_callable_check_func()
3962 if (fcc->calling_scope && !call_via_handler) { in zend_is_callable_check_func()
3963 if (fcc->function_handler->common.fn_flags & ZEND_ACC_ABSTRACT) { in zend_is_callable_check_func()
3966 …ror, 0, "cannot call abstract method %s::%s()", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->… in zend_is_callable_check_func()
3968 } else if (!fcc->object && !(fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) { in zend_is_callable_check_func()
3971 …c method %s::%s() cannot be called statically", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->… in zend_is_callable_check_func()
3975 && !(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC)) { in zend_is_callable_check_func()
3977 if (fcc->function_handler->common.scope != scope) { in zend_is_callable_check_func()
3978 if ((fcc->function_handler->common.fn_flags & ZEND_ACC_PRIVATE) in zend_is_callable_check_func()
3979 || (!zend_check_protected(zend_get_function_root_class(fcc->function_handler), scope))) { in zend_is_callable_check_func()
3984 …::%s()", zend_visibility_string(fcc->function_handler->common.fn_flags), ZSTR_VAL(fcc->calling_sco… in zend_is_callable_check_func()
3992 if (fcc->calling_scope) { in zend_is_callable_check_func()
3993 …zend_spprintf(error, 0, "class %s does not have a method \"%s\"", ZSTR_VAL(fcc->calling_scope->nam… in zend_is_callable_check_func()
4001 if (fcc->object) { in zend_is_callable_check_func()
4002 fcc->called_scope = fcc->object->ce; in zend_is_callable_check_func()
4003 if (fcc->function_handler in zend_is_callable_check_func()
4004 && (fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) { in zend_is_callable_check_func()
4005 fcc->object = NULL; in zend_is_callable_check_func()
4068 uint32_t check_flags, zend_fcall_info_cache *fcc, char **error) /* {{{ */ in zend_is_callable_at_frame() argument
4074 if (fcc == NULL) { in zend_is_callable_at_frame()
4075 fcc = &fcc_local; in zend_is_callable_at_frame()
4081 fcc->calling_scope = NULL; in zend_is_callable_at_frame()
4082 fcc->called_scope = NULL; in zend_is_callable_at_frame()
4083 fcc->function_handler = NULL; in zend_is_callable_at_frame()
4084 fcc->object = NULL; in zend_is_callable_at_frame()
4085 fcc->closure = NULL; in zend_is_callable_at_frame()
4091 fcc->object = object; in zend_is_callable_at_frame()
4092 fcc->calling_scope = object->ce; in zend_is_callable_at_frame()
4096 fcc->called_scope = fcc->calling_scope; in zend_is_callable_at_frame()
4101 …ret = zend_is_callable_check_func(callable, frame, fcc, strict_class, error, check_flags & IS_CALL… in zend_is_callable_at_frame()
4102 if (fcc == &fcc_local) { in zend_is_callable_at_frame()
4103 zend_release_fcall_info_cache(fcc); in zend_is_callable_at_frame()
4138 …if (!zend_is_callable_check_class(Z_STR_P(obj), get_scope(frame), frame, fcc, &strict_class, error… in zend_is_callable_at_frame()
4143 fcc->calling_scope = Z_OBJCE_P(obj); /* TBFixed: what if it's overloaded? */ in zend_is_callable_at_frame()
4144 fcc->object = Z_OBJ_P(obj); in zend_is_callable_at_frame()
4147 fcc->called_scope = fcc->calling_scope; in zend_is_callable_at_frame()
4157 …ANDLER_P(callable, get_closure)(Z_OBJ_P(callable), &fcc->calling_scope, &fcc->function_handler, &f… in zend_is_callable_at_frame()
4158 fcc->called_scope = fcc->calling_scope; in zend_is_callable_at_frame()
4159 fcc->closure = Z_OBJ_P(callable); in zend_is_callable_at_frame()
4160 if (fcc == &fcc_local) { in zend_is_callable_at_frame()
4161 zend_release_fcall_info_cache(fcc); in zend_is_callable_at_frame()
4177 … uint32_t check_flags, zend_string **callable_name, zend_fcall_info_cache *fcc, char **error) /* {… in zend_is_callable_ex() argument
4185 bool ret = zend_is_callable_at_frame(callable, object, frame, check_flags, fcc, error); in zend_is_callable_ex()
4200 zend_fcall_info_cache fcc; in zend_make_callable() local
4202 …if (zend_is_callable_ex(callable, NULL, IS_CALLABLE_SUPPRESS_DEPRECATIONS, callable_name, &fcc, NU… in zend_make_callable()
4203 if (Z_TYPE_P(callable) == IS_STRING && fcc.calling_scope) { in zend_make_callable()
4206 add_next_index_str(callable, zend_string_copy(fcc.calling_scope->name)); in zend_make_callable()
4207 add_next_index_str(callable, zend_string_copy(fcc.function_handler->common.function_name)); in zend_make_callable()
4209 zend_release_fcall_info_cache(&fcc); in zend_make_callable()
4216 …llable, uint32_t check_flags, zend_fcall_info *fci, zend_fcall_info_cache *fcc, zend_string **call… in zend_fcall_info_init() argument
4218 if (!zend_is_callable_ex(callable, NULL, check_flags, callable_name, fcc, error)) { in zend_fcall_info_init()
4223 fci->object = fcc->object; in zend_fcall_info_init()
4351 ZEND_API zend_result zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *fcc, zval *r… in zend_fcall_info_call() argument
4362 result = zend_call_function(fci, fcc); in zend_fcall_info_call()
4374 ZEND_API void zend_get_callable_zval_from_fcc(const zend_fcall_info_cache *fcc, zval *callable) in zend_get_callable_zval_from_fcc() argument
4376 if (fcc->closure) { in zend_get_callable_zval_from_fcc()
4377 ZVAL_OBJ_COPY(callable, fcc->closure); in zend_get_callable_zval_from_fcc()
4378 } else if (fcc->function_handler->common.scope) { in zend_get_callable_zval_from_fcc()
4380 if (fcc->object) { in zend_get_callable_zval_from_fcc()
4381 GC_ADDREF(fcc->object); in zend_get_callable_zval_from_fcc()
4382 add_next_index_object(callable, fcc->object); in zend_get_callable_zval_from_fcc()
4384 add_next_index_str(callable, zend_string_copy(fcc->calling_scope->name)); in zend_get_callable_zval_from_fcc()
4386 add_next_index_str(callable, zend_string_copy(fcc->function_handler->common.function_name)); in zend_get_callable_zval_from_fcc()
4388 ZVAL_STR_COPY(callable, fcc->function_handler->common.function_name); in zend_get_callable_zval_from_fcc()