Lines Matching refs:fcc

1039 				zend_fcall_info_cache *fcc = va_arg(*va, zend_fcall_info_cache *);  in zend_parse_arg_impl()  local
1044 fcc->function_handler = 0; in zend_parse_arg_impl()
1048 if (zend_fcall_info_init(arg, 0, fci, fcc, NULL, &is_callable_error) == SUCCESS) { in zend_parse_arg_impl()
1054 zend_release_fcall_info_cache(fcc); in zend_parse_arg_impl()
3745 … zend_class_entry *scope, zend_execute_data *frame, zend_fcall_info_cache *fcc, bool *strict_class… in zend_is_callable_check_class() argument
3764 fcc->called_scope = zend_get_called_scope(frame); in zend_is_callable_check_class()
3765 if (!fcc->called_scope || !instanceof_function(fcc->called_scope, scope)) { in zend_is_callable_check_class()
3766 fcc->called_scope = scope; in zend_is_callable_check_class()
3768 fcc->calling_scope = scope; in zend_is_callable_check_class()
3769 if (!fcc->object) { in zend_is_callable_check_class()
3770 fcc->object = zend_get_this_object(frame); in zend_is_callable_check_class()
3783 fcc->called_scope = zend_get_called_scope(frame); in zend_is_callable_check_class()
3784 if (!fcc->called_scope || !instanceof_function(fcc->called_scope, scope->parent)) { in zend_is_callable_check_class()
3785 fcc->called_scope = scope->parent; in zend_is_callable_check_class()
3787 fcc->calling_scope = scope->parent; in zend_is_callable_check_class()
3788 if (!fcc->object) { in zend_is_callable_check_class()
3789 fcc->object = zend_get_this_object(frame); in zend_is_callable_check_class()
3803 fcc->called_scope = called_scope; in zend_is_callable_check_class()
3804 fcc->calling_scope = called_scope; in zend_is_callable_check_class()
3805 if (!fcc->object) { in zend_is_callable_check_class()
3806 fcc->object = zend_get_this_object(frame); in zend_is_callable_check_class()
3813 fcc->calling_scope = ce; in zend_is_callable_check_class()
3814 if (scope && !fcc->object) { in zend_is_callable_check_class()
3820 fcc->object = object; in zend_is_callable_check_class()
3821 fcc->called_scope = object->ce; in zend_is_callable_check_class()
3823 fcc->called_scope = ce; in zend_is_callable_check_class()
3826 fcc->called_scope = fcc->object ? fcc->object->ce : ce; in zend_is_callable_check_class()
3838 ZEND_API void zend_release_fcall_info_cache(zend_fcall_info_cache *fcc) { in zend_release_fcall_info_cache() argument
3839 if (fcc->function_handler && in zend_release_fcall_info_cache()
3840 (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { in zend_release_fcall_info_cache()
3841 if (fcc->function_handler->common.function_name) { in zend_release_fcall_info_cache()
3842 zend_string_release_ex(fcc->function_handler->common.function_name, 0); in zend_release_fcall_info_cache()
3844 zend_free_trampoline(fcc->function_handler); in zend_release_fcall_info_cache()
3845 fcc->function_handler = NULL; in zend_release_fcall_info_cache()
3849 …heck_func(zval *callable, zend_execute_data *frame, zend_fcall_info_cache *fcc, bool strict_class,… in zend_is_callable_check_func() argument
3851 zend_class_entry *ce_org = fcc->calling_scope; in zend_is_callable_check_func()
3863 fcc->calling_scope = NULL; in zend_is_callable_check_func()
3888 fcc->function_handler = func; in zend_is_callable_check_func()
3919 fcc->calling_scope = ZSTR_GET_CE_CACHE(cname); in zend_is_callable_check_func()
3920 if (scope && !fcc->object) { in zend_is_callable_check_func()
3925 instanceof_function(scope, fcc->calling_scope)) { in zend_is_callable_check_func()
3926 fcc->object = object; in zend_is_callable_check_func()
3927 fcc->called_scope = object->ce; in zend_is_callable_check_func()
3929 fcc->called_scope = fcc->calling_scope; in zend_is_callable_check_func()
3932 fcc->called_scope = fcc->object ? fcc->object->ce : fcc->calling_scope; in zend_is_callable_check_func()
3935 …} else if (!zend_is_callable_check_class(cname, scope, frame, fcc, &strict_class, error, suppress_… in zend_is_callable_check_func()
3941 ftable = &fcc->calling_scope->function_table; in zend_is_callable_check_func()
3942 if (ce_org && !instanceof_function(ce_org, fcc->calling_scope)) { in zend_is_callable_check_func()
3943 …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()
3957 fcc->calling_scope = ce_org; in zend_is_callable_check_func()
3968 fcc->calling_scope && in zend_is_callable_check_func()
3970 fcc->function_handler = fcc->calling_scope->constructor; in zend_is_callable_check_func()
3971 if (fcc->function_handler) { in zend_is_callable_check_func()
3975 fcc->function_handler = Z_PTR_P(zv); in zend_is_callable_check_func()
3977 if ((fcc->function_handler->op_array.fn_flags & ZEND_ACC_CHANGED) && in zend_is_callable_check_func()
3981 instanceof_function(fcc->function_handler->common.scope, scope)) { in zend_is_callable_check_func()
3989 fcc->function_handler = priv_fbc; in zend_is_callable_check_func()
3994 if (!(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC) && in zend_is_callable_check_func()
3995 (fcc->calling_scope && in zend_is_callable_check_func()
3996 ((fcc->object && fcc->calling_scope->__call) || in zend_is_callable_check_func()
3997 (!fcc->object && fcc->calling_scope->__callstatic)))) { in zend_is_callable_check_func()
3999 if (fcc->function_handler->common.scope != scope) { in zend_is_callable_check_func()
4000 if ((fcc->function_handler->common.fn_flags & ZEND_ACC_PRIVATE) in zend_is_callable_check_func()
4001 || !zend_check_protected(zend_get_function_root_class(fcc->function_handler), scope)) { in zend_is_callable_check_func()
4003 fcc->function_handler = NULL; in zend_is_callable_check_func()
4010 if (fcc->object && fcc->calling_scope == ce_org) { in zend_is_callable_check_func()
4012 fcc->function_handler = zend_get_call_trampoline_func(ce_org, mname, 0); in zend_is_callable_check_func()
4016 fcc->function_handler = fcc->object->handlers->get_method(&fcc->object, mname, NULL); in zend_is_callable_check_func()
4017 if (fcc->function_handler) { in zend_is_callable_check_func()
4019 (!fcc->function_handler->common.scope || in zend_is_callable_check_func()
4020 !instanceof_function(ce_org, fcc->function_handler->common.scope))) { in zend_is_callable_check_func()
4021 zend_release_fcall_info_cache(fcc); in zend_is_callable_check_func()
4024 … call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0; in zend_is_callable_check_func()
4028 } else if (fcc->calling_scope) { in zend_is_callable_check_func()
4029 if (fcc->calling_scope->get_static_method) { in zend_is_callable_check_func()
4030 fcc->function_handler = fcc->calling_scope->get_static_method(fcc->calling_scope, mname); in zend_is_callable_check_func()
4032 fcc->function_handler = zend_std_get_static_method(fcc->calling_scope, mname, NULL); in zend_is_callable_check_func()
4034 if (fcc->function_handler) { in zend_is_callable_check_func()
4036 call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0; in zend_is_callable_check_func()
4037 if (call_via_handler && !fcc->object) { in zend_is_callable_check_func()
4040 instanceof_function(object->ce, fcc->calling_scope)) { in zend_is_callable_check_func()
4041 fcc->object = object; in zend_is_callable_check_func()
4049 if (fcc->calling_scope && !call_via_handler) { in zend_is_callable_check_func()
4050 if (fcc->function_handler->common.fn_flags & ZEND_ACC_ABSTRACT) { in zend_is_callable_check_func()
4053 …ror, 0, "cannot call abstract method %s::%s()", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->… in zend_is_callable_check_func()
4055 } else if (!fcc->object && !(fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) { in zend_is_callable_check_func()
4058 …c method %s::%s() cannot be called statically", ZSTR_VAL(fcc->calling_scope->name), ZSTR_VAL(fcc->… in zend_is_callable_check_func()
4062 && !(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC)) { in zend_is_callable_check_func()
4064 if (fcc->function_handler->common.scope != scope) { in zend_is_callable_check_func()
4065 if ((fcc->function_handler->common.fn_flags & ZEND_ACC_PRIVATE) in zend_is_callable_check_func()
4066 || (!zend_check_protected(zend_get_function_root_class(fcc->function_handler), scope))) { in zend_is_callable_check_func()
4071 …::%s()", zend_visibility_string(fcc->function_handler->common.fn_flags), ZSTR_VAL(fcc->calling_sco… in zend_is_callable_check_func()
4079 if (fcc->calling_scope) { in zend_is_callable_check_func()
4080 …zend_spprintf(error, 0, "class %s does not have a method \"%s\"", ZSTR_VAL(fcc->calling_scope->nam… in zend_is_callable_check_func()
4088 if (fcc->object) { in zend_is_callable_check_func()
4089 fcc->called_scope = fcc->object->ce; in zend_is_callable_check_func()
4090 if (fcc->function_handler in zend_is_callable_check_func()
4091 && (fcc->function_handler->common.fn_flags & ZEND_ACC_STATIC)) { in zend_is_callable_check_func()
4092 fcc->object = NULL; in zend_is_callable_check_func()
4155 uint32_t check_flags, zend_fcall_info_cache *fcc, char **error) /* {{{ */ in zend_is_callable_at_frame() argument
4161 if (fcc == NULL) { in zend_is_callable_at_frame()
4162 fcc = &fcc_local; in zend_is_callable_at_frame()
4168 fcc->calling_scope = NULL; in zend_is_callable_at_frame()
4169 fcc->called_scope = NULL; in zend_is_callable_at_frame()
4170 fcc->function_handler = NULL; in zend_is_callable_at_frame()
4171 fcc->object = NULL; in zend_is_callable_at_frame()
4172 fcc->closure = NULL; in zend_is_callable_at_frame()
4178 fcc->object = object; in zend_is_callable_at_frame()
4179 fcc->calling_scope = object->ce; in zend_is_callable_at_frame()
4183 fcc->called_scope = fcc->calling_scope; in zend_is_callable_at_frame()
4188 …ret = zend_is_callable_check_func(callable, frame, fcc, strict_class, error, check_flags & IS_CALL… in zend_is_callable_at_frame()
4189 if (fcc == &fcc_local) { in zend_is_callable_at_frame()
4190 zend_release_fcall_info_cache(fcc); in zend_is_callable_at_frame()
4225 …if (!zend_is_callable_check_class(Z_STR_P(obj), get_scope(frame), frame, fcc, &strict_class, error… in zend_is_callable_at_frame()
4230 fcc->calling_scope = Z_OBJCE_P(obj); /* TBFixed: what if it's overloaded? */ in zend_is_callable_at_frame()
4231 fcc->object = Z_OBJ_P(obj); in zend_is_callable_at_frame()
4234 fcc->called_scope = fcc->calling_scope; in zend_is_callable_at_frame()
4244 …ANDLER_P(callable, get_closure)(Z_OBJ_P(callable), &fcc->calling_scope, &fcc->function_handler, &f… in zend_is_callable_at_frame()
4245 fcc->called_scope = fcc->calling_scope; in zend_is_callable_at_frame()
4246 fcc->closure = Z_OBJ_P(callable); in zend_is_callable_at_frame()
4247 if (fcc == &fcc_local) { in zend_is_callable_at_frame()
4248 zend_release_fcall_info_cache(fcc); in zend_is_callable_at_frame()
4264 … uint32_t check_flags, zend_string **callable_name, zend_fcall_info_cache *fcc, char **error) /* {… in zend_is_callable_ex() argument
4272 bool ret = zend_is_callable_at_frame(callable, object, frame, check_flags, fcc, error); in zend_is_callable_ex()
4287 zend_fcall_info_cache fcc; in zend_make_callable() local
4289 …if (zend_is_callable_ex(callable, NULL, IS_CALLABLE_SUPPRESS_DEPRECATIONS, callable_name, &fcc, NU… in zend_make_callable()
4290 if (Z_TYPE_P(callable) == IS_STRING && fcc.calling_scope) { in zend_make_callable()
4293 add_next_index_str(callable, zend_string_copy(fcc.calling_scope->name)); in zend_make_callable()
4294 add_next_index_str(callable, zend_string_copy(fcc.function_handler->common.function_name)); in zend_make_callable()
4296 zend_release_fcall_info_cache(&fcc); in zend_make_callable()
4303 …llable, uint32_t check_flags, zend_fcall_info *fci, zend_fcall_info_cache *fcc, zend_string **call… in zend_fcall_info_init() argument
4305 if (!zend_is_callable_ex(callable, NULL, check_flags, callable_name, fcc, error)) { in zend_fcall_info_init()
4310 fci->object = fcc->object; in zend_fcall_info_init()
4438 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
4449 result = zend_call_function(fci, fcc); in zend_fcall_info_call()
4461 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
4463 if (fcc->closure) { in zend_get_callable_zval_from_fcc()
4464 ZVAL_OBJ_COPY(callable, fcc->closure); in zend_get_callable_zval_from_fcc()
4465 } else if (fcc->function_handler->common.scope) { in zend_get_callable_zval_from_fcc()
4467 if (fcc->object) { in zend_get_callable_zval_from_fcc()
4468 GC_ADDREF(fcc->object); in zend_get_callable_zval_from_fcc()
4469 add_next_index_object(callable, fcc->object); in zend_get_callable_zval_from_fcc()
4471 add_next_index_str(callable, zend_string_copy(fcc->calling_scope->name)); in zend_get_callable_zval_from_fcc()
4473 add_next_index_str(callable, zend_string_copy(fcc->function_handler->common.function_name)); in zend_get_callable_zval_from_fcc()
4475 ZVAL_STR_COPY(callable, fcc->function_handler->common.function_name); in zend_get_callable_zval_from_fcc()