Lines Matching refs:ce

109 		if (EG(exception) && EG(exception)->ce == reflection_exception_ptr) { \
170 zend_class_entry *ce; member
188 static inline bool is_closure_invoke(zend_class_entry *ce, zend_string *lcname) { in is_closure_invoke() argument
189 return ce == zend_ce_closure in is_closure_invoke()
302 static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, char *indent);
307 static void _class_string(smart_str *str, zend_class_entry *ce, zval *obj, char *indent) in _class_string() argument
313 if (ce->doc_comment) { in _class_string()
314 smart_str_append_printf(str, "%s%s", indent, ZSTR_VAL(ce->doc_comment)); in _class_string()
322 if (ce->ce_flags & ZEND_ACC_INTERFACE) { in _class_string()
324 } else if (ce->ce_flags & ZEND_ACC_TRAIT) { in _class_string()
329 smart_str_append_printf(str, (ce->type == ZEND_USER_CLASS) ? "<user" : "<internal"); in _class_string()
330 if (ce->type == ZEND_INTERNAL_CLASS && ce->info.internal.module) { in _class_string()
331 smart_str_append_printf(str, ":%s", ce->info.internal.module->name); in _class_string()
334 if (ce->get_iterator != NULL) { in _class_string()
337 if (ce->ce_flags & ZEND_ACC_INTERFACE) { in _class_string()
339 } else if (ce->ce_flags & ZEND_ACC_TRAIT) { in _class_string()
342 if (ce->ce_flags & (ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) { in _class_string()
345 if (ce->ce_flags & ZEND_ACC_FINAL) { in _class_string()
348 if (ce->ce_flags & ZEND_ACC_READONLY_CLASS) { in _class_string()
353 smart_str_append_printf(str, "%s", ZSTR_VAL(ce->name)); in _class_string()
354 if (ce->parent) { in _class_string()
355 smart_str_append_printf(str, " extends %s", ZSTR_VAL(ce->parent->name)); in _class_string()
358 if (ce->num_interfaces) { in _class_string()
361 ZEND_ASSERT(ce->ce_flags & ZEND_ACC_LINKED); in _class_string()
362 if (ce->ce_flags & ZEND_ACC_INTERFACE) { in _class_string()
363 smart_str_append_printf(str, " extends %s", ZSTR_VAL(ce->interfaces[0]->name)); in _class_string()
365 smart_str_append_printf(str, " implements %s", ZSTR_VAL(ce->interfaces[0]->name)); in _class_string()
367 for (i = 1; i < ce->num_interfaces; ++i) { in _class_string()
368 smart_str_append_printf(str, ", %s", ZSTR_VAL(ce->interfaces[i]->name)); in _class_string()
374 if (ce->type == ZEND_USER_CLASS) { in _class_string()
375 smart_str_append_printf(str, "%s @@ %s %d-%d\n", indent, ZSTR_VAL(ce->info.user.filename), in _class_string()
376 ce->info.user.line_start, ce->info.user.line_end); in _class_string()
381 count = zend_hash_num_elements(&ce->constants_table); in _class_string()
387 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(CE_CONSTANTS_TABLE(ce), key, c) { in _class_string()
399 count = zend_hash_num_elements(&ce->properties_info); in _class_string()
403 ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, prop) { in _class_string()
404 if ((prop->flags & ZEND_ACC_PRIVATE) && prop->ce != ce) { in _class_string()
417 ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, prop) { in _class_string()
418 if ((prop->flags & ZEND_ACC_STATIC) && (!(prop->flags & ZEND_ACC_PRIVATE) || prop->ce == ce)) { in _class_string()
427 count = zend_hash_num_elements(&ce->function_table); in _class_string()
431 ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, mptr) { in _class_string()
433 && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) in _class_string()
445 ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, mptr) { in _class_string()
447 && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) in _class_string()
450 _function_string(str, mptr, ce, ZSTR_VAL(sub_indent)); in _class_string()
459 count = zend_hash_num_elements(&ce->properties_info) - count_static_props - count_shadow_props; in _class_string()
464 ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, prop) { in _class_string()
466 && (!(prop->flags & ZEND_ACC_PRIVATE) || prop->ce == ce)) { in _class_string()
482 if (!zend_hash_exists(&ce->properties_info, prop_name)) { in _class_string()
497 count = zend_hash_num_elements(&ce->function_table) - count_static_funcs; in _class_string()
503 ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, mptr) { in _class_string()
505 && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) in _class_string()
509 if (obj && is_closure_invoke(ce, mptr->common.function_name) in _class_string()
517 _function_string(&method_str, mptr, ce, ZSTR_VAL(sub_indent)); in _class_string()
590 if (Z_TYPE(c->value) == IS_CONSTANT_AST && zend_update_class_constant(c, name, c->ce) == FAILURE) { in _class_const_string()
681 zend_class_entry *class = obj->ce; in format_default_value()
914 zend_class_entry *ce = prop_info->ce; in property_get_default() local
916 zval *prop = &ce->default_static_members_table[prop_info->offset]; in property_get_default()
920 return &ce->default_properties_table[OBJ_PROP_TO_NUM(prop_info->offset)]; in property_get_default()
1009 static void _extension_class_string(zend_class_entry *ce, zend_string *key, smart_str *str, char *i… in _extension_class_string() argument
1011 …if (ce->type == ZEND_INTERNAL_CLASS && ce->info.internal.module && !strcasecmp(ce->info.internal.m… in _extension_class_string()
1013 if (zend_string_equals_ci(ce->name, key)) { in _extension_class_string()
1015 _class_string(str, ce, NULL, indent); in _extension_class_string()
1127 zend_class_entry *ce; in _extension_string() local
1130 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(EG(class_table), key, ce) { in _extension_string()
1131 _extension_class_string(ce, key, &str_classes, ZSTR_VAL(sub_indent), module, &num_classes); in _extension_string()
1197 zend_class_entry *ce = zend_lookup_class_ex(attr->name, attr->lcname, 0); in read_attributes() local
1199 if (ce == NULL) { in read_attributes()
1208 if (!instanceof_function(ce, base)) { in read_attributes()
1297 PHPAPI void zend_reflection_class_factory(zend_class_entry *ce, zval *object) in zend_reflection_class_factory() argument
1302 ce->ce_flags & ZEND_ACC_ENUM ? reflection_enum_ptr : reflection_class_ptr; in zend_reflection_class_factory()
1305 intern->ptr = ce; in zend_reflection_class_factory()
1307 intern->ce = ce; in zend_reflection_class_factory()
1308 ZVAL_STR_COPY(reflection_prop_name(object), ce->name); in zend_reflection_class_factory()
1332 intern->ce = NULL; in reflection_extension_factory()
1353 intern->ce = fptr->common.scope; in reflection_parameter_factory()
1456 intern->ce = NULL; in reflection_function_factory()
1465 static void reflection_method_factory(zend_class_entry *ce, zend_function *method, zval *closure_ob… in reflection_method_factory() argument
1473 intern->ce = ce; in reflection_method_factory()
1484 static void reflection_property_factory(zend_class_entry *ce, zend_string *name, zend_property_info… in reflection_property_factory() argument
1496 intern->ce = ce; in reflection_property_factory()
1498 ZVAL_STR_COPY(reflection_prop_class(object), prop ? prop->ce->name : ce->name); in reflection_property_factory()
1502 static void reflection_property_factory_str(zend_class_entry *ce, const char *name_str, size_t name… in reflection_property_factory_str() argument
1505 reflection_property_factory(ce, name, prop, object); in reflection_property_factory_str()
1518 intern->ce = constant->ce; in reflection_class_constant_factory()
1521 ZVAL_STR_COPY(reflection_prop_class(object), constant->ce->name); in reflection_class_constant_factory()
1525 static void reflection_enum_case_factory(zend_class_entry *ce, zend_string *name_str, zend_class_co… in reflection_enum_case_factory() argument
1529 zend_class_entry *case_reflection_class = ce->enum_backing_type == IS_UNDEF in reflection_enum_case_factory()
1536 intern->ce = constant->ce; in reflection_enum_case_factory()
1539 ZVAL_STR_COPY(reflection_prop_class(object), constant->ce->name); in reflection_enum_case_factory()
1662 intern->ce = NULL; in ZEND_METHOD()
1677 _function_string(&str, fptr, intern->ce, ""); in ZEND_METHOD()
2269 if (intern->ce) { in ZEND_METHOD()
2275 intern->ce = zend_ce_generator; in ZEND_METHOD()
2428 zend_class_entry *ce = NULL; in ZEND_METHOD() local
2451 ce = fptr->common.scope; in ZEND_METHOD()
2468 ce = Z_OBJCE_P(classref); in ZEND_METHOD()
2474 if ((ce = zend_lookup_class(name)) == NULL) { in ZEND_METHOD()
2489 if (Z_TYPE_P(classref) == IS_OBJECT && is_closure_invoke(ce, lcname) in ZEND_METHOD()
2494 } else if ((fptr = zend_hash_find_ptr(&ce->function_table, lcname)) == NULL) { in ZEND_METHOD()
2496 "Method %s::%s() does not exist", ZSTR_VAL(ce->name), ZSTR_VAL(name)); in ZEND_METHOD()
2507 ce = Z_OBJCE_P(reference); in ZEND_METHOD()
2509 if (instanceof_function(ce, zend_ce_closure)) { in ZEND_METHOD()
2513 …} else if ((fptr = zend_hash_find_ptr(&ce->function_table, ZSTR_KNOWN(ZEND_STR_MAGIC_INVOKE))) == … in ZEND_METHOD()
2515 "Method %s::%s() does not exist", ZSTR_VAL(ce->name), ZEND_INVOKE_FUNC_NAME); in ZEND_METHOD()
2578 intern->ce = ce; in ZEND_METHOD()
2680 zend_class_entry *ce; in ZEND_METHOD() local
2705 ce = param->fptr->common.scope; in ZEND_METHOD()
2706 if (!ce) { in ZEND_METHOD()
2712 ce = param->fptr->common.scope; in ZEND_METHOD()
2713 if (!ce) { in ZEND_METHOD()
2718 if (!ce->parent) { in ZEND_METHOD()
2723 ce = ce->parent; in ZEND_METHOD()
2725 ce = zend_lookup_class(class_name); in ZEND_METHOD()
2726 if (!ce) { in ZEND_METHOD()
2732 zend_reflection_class_factory(ce, return_value); in ZEND_METHOD()
3242 zend_class_entry *ce = NULL; in instantiate_reflection_method() local
3279 ce = arg1_obj->ce; in instantiate_reflection_method()
3303 if ((ce = zend_lookup_class(class_name)) == NULL) { in instantiate_reflection_method()
3317 …object_init_ex(return_value, execute_data->This.value.ce ? execute_data->This.value.ce : reflectio… in instantiate_reflection_method()
3324 if (ce == zend_ce_closure && orig_obj && (method_name_len == sizeof(ZEND_INVOKE_FUNC_NAME)-1) in instantiate_reflection_method()
3329 } else if ((mptr = zend_hash_str_find_ptr(&ce->function_table, lcname, method_name_len)) == NULL) { in instantiate_reflection_method()
3332 "Method %s::%s() does not exist", ZSTR_VAL(ce->name), method_name); in instantiate_reflection_method()
3341 intern->ce = ce; in instantiate_reflection_method()
3365 _function_string(&str, mptr, intern->ce, ""); in ZEND_METHOD()
3468 …zend_call_known_function(callback, (object ? Z_OBJ_P(object) : NULL), intern->ce, &retval, argc, p… in reflection_method_invoke()
3708 …RETURN_BOOL((mptr->common.fn_flags & ZEND_ACC_CTOR) && intern->ce->constructor && intern->ce->cons… in ZEND_METHOD()
3789 …"Method %s::%s does not have a prototype", ZSTR_VAL(intern->ce->name), ZSTR_VAL(mptr->common.funct… in ZEND_METHOD()
3816 zend_class_entry *ce; in ZEND_METHOD() local
3825 ce = classname_obj->ce; in ZEND_METHOD()
3827 if ((ce = zend_lookup_class(classname_str)) == NULL) { in ZEND_METHOD()
3836 if ((constant = zend_hash_find_ptr(CE_CONSTANTS_TABLE(ce), constname)) == NULL) { in ZEND_METHOD()
3837 …ex(reflection_exception_ptr, 0, "Constant %s::%s does not exist", ZSTR_VAL(ce->name), ZSTR_VAL(con… in ZEND_METHOD()
3843 intern->ce = constant->ce; in ZEND_METHOD()
3845 ZVAL_STR_COPY(reflection_prop_class(object), constant->ce->name); in ZEND_METHOD()
4005 zend_result result = zend_update_class_constant(ref, Z_STR_P(name), ref->ce); in ZEND_METHOD()
4025 zend_reflection_class_factory(ref->ce, return_value); in ZEND_METHOD()
4055 ref->attributes, 0, ref->ce, ZEND_ATTRIBUTE_TARGET_CLASS_CONST, in ZEND_METHOD()
4056 ref->ce->type == ZEND_USER_CLASS ? ref->ce->info.user.filename : NULL); in ZEND_METHOD()
4077 zend_class_entry *ce; in reflection_class_object_ctor() local
4093 ZVAL_STR_COPY(reflection_prop_name(object), arg_obj->ce->name); in reflection_class_object_ctor()
4094 intern->ptr = arg_obj->ce; in reflection_class_object_ctor()
4099 if ((ce = zend_lookup_class(arg_class)) == NULL) { in reflection_class_object_ctor()
4106 ZVAL_STR_COPY(reflection_prop_name(object), ce->name); in reflection_class_object_ctor()
4107 intern->ptr = ce; in reflection_class_object_ctor()
4121 static void add_class_vars(zend_class_entry *ce, bool statics, zval *return_value) in add_class_vars() argument
4127 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(&ce->properties_info, key, prop_info) { in add_class_vars()
4129 prop_info->ce != ce)) { in add_class_vars()
4150 if (UNEXPECTED(zval_update_constant_ex(&prop_copy, ce) != SUCCESS)) { in add_class_vars()
4164 zend_class_entry *ce; in ZEND_METHOD() local
4173 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4175 if (UNEXPECTED(zend_update_class_constants(ce) != SUCCESS)) { in ZEND_METHOD()
4179 if (ce->default_static_members_count && !CE_STATIC_MEMBERS(ce)) { in ZEND_METHOD()
4180 zend_class_init_statics(ce); in ZEND_METHOD()
4185 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(&ce->properties_info, key, prop_info) { in ZEND_METHOD()
4187 prop_info->ce != ce)) { in ZEND_METHOD()
4194 prop = &CE_STATIC_MEMBERS(ce)[prop_info->offset]; in ZEND_METHOD()
4214 zend_class_entry *ce, *old_scope; in ZEND_METHOD() local
4222 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4224 if (UNEXPECTED(zend_update_class_constants(ce) != SUCCESS)) { in ZEND_METHOD()
4229 EG(fake_scope) = ce; in ZEND_METHOD()
4230 prop = zend_std_get_static_property(ce, name, BP_VAR_IS); in ZEND_METHOD()
4242 "Property %s::$%s does not exist", ZSTR_VAL(ce->name), ZSTR_VAL(name)); in ZEND_METHOD()
4250 zend_class_entry *ce, *old_scope; in ZEND_METHOD() local
4259 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4261 if (UNEXPECTED(zend_update_class_constants(ce) != SUCCESS)) { in ZEND_METHOD()
4265 EG(fake_scope) = ce; in ZEND_METHOD()
4266 variable_ptr = zend_std_get_static_property_with_info(ce, name, BP_VAR_W, &prop_info); in ZEND_METHOD()
4271 "Class %s does not have a property named %s", ZSTR_VAL(ce->name), ZSTR_VAL(name)); in ZEND_METHOD()
4298 zend_class_entry *ce; in ZEND_METHOD() local
4303 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4305 if (UNEXPECTED(zend_update_class_constants(ce) != SUCCESS)) { in ZEND_METHOD()
4308 add_class_vars(ce, 1, return_value); in ZEND_METHOD()
4309 add_class_vars(ce, 0, return_value); in ZEND_METHOD()
4317 zend_class_entry *ce; in ZEND_METHOD() local
4323 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4324 _class_string(&str, ce, &intern->obj, ""); in ZEND_METHOD()
4333 zend_class_entry *ce; in ZEND_METHOD() local
4339 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4340 RETURN_STR_COPY(ce->name); in ZEND_METHOD()
4348 zend_class_entry *ce; in ZEND_METHOD() local
4353 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4354 RETURN_BOOL(ce->type == ZEND_INTERNAL_CLASS); in ZEND_METHOD()
4362 zend_class_entry *ce; in ZEND_METHOD() local
4367 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4368 RETURN_BOOL(ce->type == ZEND_USER_CLASS); in ZEND_METHOD()
4376 zend_class_entry *ce; in ZEND_METHOD() local
4381 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4382 RETURN_BOOL(ce->ce_flags & ZEND_ACC_ANON_CLASS); in ZEND_METHOD()
4390 zend_class_entry *ce; in ZEND_METHOD() local
4395 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4396 if (ce->type == ZEND_USER_CLASS) { in ZEND_METHOD()
4397 RETURN_STR_COPY(ce->info.user.filename); in ZEND_METHOD()
4407 zend_class_entry *ce; in ZEND_METHOD() local
4412 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4413 if (ce->type == ZEND_USER_CLASS) { in ZEND_METHOD()
4414 RETURN_LONG(ce->info.user.line_start); in ZEND_METHOD()
4424 zend_class_entry *ce; in ZEND_METHOD() local
4429 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4430 if (ce->type == ZEND_USER_CLASS) { in ZEND_METHOD()
4431 RETURN_LONG(ce->info.user.line_end); in ZEND_METHOD()
4441 zend_class_entry *ce; in ZEND_METHOD() local
4446 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4447 if (ce->doc_comment) { in ZEND_METHOD()
4448 RETURN_STR_COPY(ce->doc_comment); in ZEND_METHOD()
4458 zend_class_entry *ce; in ZEND_METHOD() local
4460 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4463 ce->attributes, 0, ce, ZEND_ATTRIBUTE_TARGET_CLASS, in ZEND_METHOD()
4464 ce->type == ZEND_USER_CLASS ? ce->info.user.filename : NULL); in ZEND_METHOD()
4472 zend_class_entry *ce; in ZEND_METHOD() local
4477 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4479 if (ce->constructor) { in ZEND_METHOD()
4480 reflection_method_factory(ce, ce->constructor, NULL, return_value); in ZEND_METHOD()
4491 zend_class_entry *ce; in ZEND_METHOD() local
4498 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4500 RETVAL_BOOL(zend_hash_exists(&ce->function_table, lc_name) || is_closure_invoke(ce, lc_name)); in ZEND_METHOD()
4509 zend_class_entry *ce; in ZEND_METHOD() local
4518 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4520 if (!Z_ISUNDEF(intern->obj) && is_closure_invoke(ce, lc_name) in ZEND_METHOD()
4525 reflection_method_factory(ce, mptr, NULL, return_value); in ZEND_METHOD()
4526 } else if (Z_ISUNDEF(intern->obj) && is_closure_invoke(ce, lc_name) in ZEND_METHOD()
4527 …&& object_init_ex(&obj_tmp, ce) == SUCCESS && (mptr = zend_get_closure_invoke_method(Z_OBJ(obj_tmp… in ZEND_METHOD()
4530 reflection_method_factory(ce, mptr, NULL, return_value); in ZEND_METHOD()
4532 } else if ((mptr = zend_hash_find_ptr(&ce->function_table, lc_name)) != NULL) { in ZEND_METHOD()
4533 reflection_method_factory(ce, mptr, NULL, return_value); in ZEND_METHOD()
4536 "Method %s::%s() does not exist", ZSTR_VAL(ce->name), ZSTR_VAL(name)); in ZEND_METHOD()
4543 static bool _addmethod(zend_function *mptr, zend_class_entry *ce, HashTable *ht, zend_long filter) in _addmethod() argument
4545 if ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) && mptr->common.scope != ce) { in _addmethod()
4551 reflection_method_factory(ce, mptr, NULL, &method); in _addmethod()
4563 zend_class_entry *ce; in ZEND_METHOD() local
4576 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4579 ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, mptr) { in ZEND_METHOD()
4580 _addmethod(mptr, ce, Z_ARRVAL_P(return_value), filter); in ZEND_METHOD()
4583 if (instanceof_function(ce, zend_ce_closure)) { in ZEND_METHOD()
4588 object_init_ex(&obj_tmp, ce); in ZEND_METHOD()
4595 if (!_addmethod(closure, ce, Z_ARRVAL_P(return_value), filter)) { in ZEND_METHOD()
4611 zend_class_entry *ce; in ZEND_METHOD() local
4618 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4619 if ((property_info = zend_hash_find_ptr(&ce->properties_info, name)) != NULL) { in ZEND_METHOD()
4620 if ((property_info->flags & ZEND_ACC_PRIVATE) && property_info->ce != ce) { in ZEND_METHOD()
4639 zend_class_entry *ce, *ce2; in ZEND_METHOD() local
4649 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4650 if ((property_info = zend_hash_find_ptr(&ce->properties_info, name)) != NULL) { in ZEND_METHOD()
4651 if (!(property_info->flags & ZEND_ACC_PRIVATE) || property_info->ce == ce) { in ZEND_METHOD()
4652 reflection_property_factory(ce, name, property_info, return_value); in ZEND_METHOD()
4658 reflection_property_factory(ce, name, NULL, return_value); in ZEND_METHOD()
4681 if (!instanceof_function(ce, ce2)) { in ZEND_METHOD()
4682 …e %s::$%s does not specify a base class of %s", ZSTR_VAL(ce2->name), str_name, ZSTR_VAL(ce->name)); in ZEND_METHOD()
4685 ce = ce2; in ZEND_METHOD()
4687 property_info = zend_hash_str_find_ptr(&ce->properties_info, str_name, str_name_len); in ZEND_METHOD()
4690 || property_info->ce == ce)) { in ZEND_METHOD()
4691 reflection_property_factory_str(ce, str_name, str_name_len, property_info, return_value); in ZEND_METHOD()
4695 …n_ex(reflection_exception_ptr, 0, "Property %s::$%s does not exist", ZSTR_VAL(ce->name), str_name); in ZEND_METHOD()
4700 static void _addproperty(zend_property_info *pptr, zend_string *key, zend_class_entry *ce, HashTabl… in _addproperty() argument
4702 if ((pptr->flags & ZEND_ACC_PRIVATE) && pptr->ce != ce) { in _addproperty()
4708 reflection_property_factory(ce, key, pptr, &property); in _addproperty()
4715 static void _adddynproperty(zval *ptr, zend_string *key, zend_class_entry *ce, zval *retval) in _adddynproperty() argument
4731 reflection_property_factory(ce, key, NULL, &property); in _adddynproperty()
4740 zend_class_entry *ce; in ZEND_METHOD() local
4754 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4757 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(&ce->properties_info, key, prop_info) { in ZEND_METHOD()
4758 _addproperty(prop_info, key, ce, Z_ARRVAL_P(return_value), filter); in ZEND_METHOD()
4765 _adddynproperty(prop, key, ce, return_value); in ZEND_METHOD()
4775 zend_class_entry *ce; in ZEND_METHOD() local
4782 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4783 if (zend_hash_exists(&ce->constants_table, name)) { in ZEND_METHOD()
4795 zend_class_entry *ce; in ZEND_METHOD() local
4810 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4813 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(CE_CONSTANTS_TABLE(ce), key, constant) { in ZEND_METHOD()
4814 …value) == IS_CONSTANT_AST && zend_update_class_constant(constant, key, constant->ce) != SUCCESS)) { in ZEND_METHOD()
4830 zend_class_entry *ce; in ZEND_METHOD() local
4844 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4847 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(CE_CONSTANTS_TABLE(ce), name, constant) { in ZEND_METHOD()
4861 zend_class_entry *ce; in ZEND_METHOD() local
4870 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4871 constants_table = CE_CONSTANTS_TABLE(ce); in ZEND_METHOD()
4873 …if (UNEXPECTED(Z_TYPE(c->value) == IS_CONSTANT_AST && zend_update_class_constant(c, key, c->ce) !=… in ZEND_METHOD()
4888 zend_class_entry *ce; in ZEND_METHOD() local
4892 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4897 if ((constant = zend_hash_find_ptr(CE_CONSTANTS_TABLE(ce), name)) == NULL) { in ZEND_METHOD()
4908 zend_class_entry *ce; in _class_check_flag() local
4913 GET_REFLECTION_OBJECT_PTR(ce); in _class_check_flag()
4914 RETVAL_BOOL(ce->ce_flags & mask); in _class_check_flag()
4922 zend_class_entry *ce; in ZEND_METHOD() local
4927 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4928 …if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_… in ZEND_METHOD()
4934 if (!ce->constructor) { in ZEND_METHOD()
4938 RETURN_BOOL(ce->constructor->common.fn_flags & ZEND_ACC_PUBLIC); in ZEND_METHOD()
4946 zend_class_entry *ce; in ZEND_METHOD() local
4952 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
4953 …if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_… in ZEND_METHOD()
4957 if (ce->clone) { in ZEND_METHOD()
4958 RETURN_BOOL(ce->clone->common.fn_flags & ZEND_ACC_PUBLIC); in ZEND_METHOD()
4963 if (ce->clone) { in ZEND_METHOD()
4964 RETURN_BOOL(ce->clone->common.fn_flags & ZEND_ACC_PUBLIC); in ZEND_METHOD()
4966 if (UNEXPECTED(object_init_ex(&obj, ce) != SUCCESS)) { in ZEND_METHOD()
5021 zend_class_entry *ce; in ZEND_METHOD() local
5027 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5029 RETURN_LONG((ce->ce_flags & keep_flags)); in ZEND_METHOD()
5037 zend_class_entry *ce; in ZEND_METHOD() local
5043 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5044 RETURN_BOOL(instanceof_function(Z_OBJCE_P(object), ce)); in ZEND_METHOD()
5052 zend_class_entry *ce, *old_scope; in ZEND_METHOD() local
5055 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5057 if (UNEXPECTED(object_init_ex(return_value, ce) != SUCCESS)) { in ZEND_METHOD()
5062 EG(fake_scope) = ce; in ZEND_METHOD()
5073 …x(reflection_exception_ptr, 0, "Access to non-public constructor of class %s", ZSTR_VAL(ce->name)); in ZEND_METHOD()
5090 …%s does not have a constructor, so you cannot pass any constructor arguments", ZSTR_VAL(ce->name)); in ZEND_METHOD()
5099 zend_class_entry *ce; in ZEND_METHOD() local
5101 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5107 if (ce->type == ZEND_INTERNAL_CLASS in ZEND_METHOD()
5108 && ce->create_object != NULL && (ce->ce_flags & ZEND_ACC_FINAL)) { in ZEND_METHOD()
5109 …marked as final that cannot be instantiated without invoking its constructor", ZSTR_VAL(ce->name)); in ZEND_METHOD()
5113 object_init_ex(return_value, ce); in ZEND_METHOD()
5121 zend_class_entry *ce, *old_scope; in ZEND_METHOD() local
5126 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5136 if (UNEXPECTED(object_init_ex(return_value, ce) != SUCCESS)) { in ZEND_METHOD()
5141 EG(fake_scope) = ce; in ZEND_METHOD()
5148 …x(reflection_exception_ptr, 0, "Access to non-public constructor of class %s", ZSTR_VAL(ce->name)); in ZEND_METHOD()
5160 …%s does not have a constructor, so you cannot pass any constructor arguments", ZSTR_VAL(ce->name)); in ZEND_METHOD()
5169 zend_class_entry *ce; in ZEND_METHOD() local
5174 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5176 if (ce->num_interfaces) { in ZEND_METHOD()
5179 ZEND_ASSERT(ce->ce_flags & ZEND_ACC_LINKED); in ZEND_METHOD()
5181 for (i=0; i < ce->num_interfaces; i++) { in ZEND_METHOD()
5183 zend_reflection_class_factory(ce->interfaces[i], &interface); in ZEND_METHOD()
5184 zend_hash_update(Z_ARRVAL_P(return_value), ce->interfaces[i]->name, &interface); in ZEND_METHOD()
5196 zend_class_entry *ce; in ZEND_METHOD() local
5202 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5204 if (!ce->num_interfaces) { in ZEND_METHOD()
5209 ZEND_ASSERT(ce->ce_flags & ZEND_ACC_LINKED); in ZEND_METHOD()
5212 for (i=0; i < ce->num_interfaces; i++) { in ZEND_METHOD()
5213 add_next_index_str(return_value, zend_string_copy(ce->interfaces[i]->name)); in ZEND_METHOD()
5222 zend_class_entry *ce; in ZEND_METHOD() local
5228 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5230 if (!ce->num_traits) { in ZEND_METHOD()
5236 for (i=0; i < ce->num_traits; i++) { in ZEND_METHOD()
5240 trait_ce = zend_fetch_class_by_name(ce->trait_names[i].name, in ZEND_METHOD()
5241 ce->trait_names[i].lc_name, ZEND_FETCH_CLASS_TRAIT); in ZEND_METHOD()
5244 zend_hash_update(Z_ARRVAL_P(return_value), ce->trait_names[i].name, &trait); in ZEND_METHOD()
5253 zend_class_entry *ce; in ZEND_METHOD() local
5259 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5261 if (!ce->num_traits) { in ZEND_METHOD()
5267 for (i=0; i < ce->num_traits; i++) { in ZEND_METHOD()
5268 add_next_index_str(return_value, zend_string_copy(ce->trait_names[i].name)); in ZEND_METHOD()
5277 zend_class_entry *ce; in ZEND_METHOD() local
5282 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5285 if (ce->trait_aliases) { in ZEND_METHOD()
5289 while (ce->trait_aliases[i]) { in ZEND_METHOD()
5291 zend_trait_method_reference *cur_ref = &ce->trait_aliases[i]->trait_method; in ZEND_METHOD()
5293 if (ce->trait_aliases[i]->alias) { in ZEND_METHOD()
5300 for (j = 0; j < ce->num_traits; j++) { in ZEND_METHOD()
5302 zend_hash_find_ptr(CG(class_table), ce->trait_names[j].lc_name); in ZEND_METHOD()
5315 …add_assoc_str_ex(return_value, ZSTR_VAL(ce->trait_aliases[i]->alias), ZSTR_LEN(ce->trait_aliases[i… in ZEND_METHOD()
5329 zend_class_entry *ce; in ZEND_METHOD() local
5334 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5336 if (ce->parent) { in ZEND_METHOD()
5337 zend_reflection_class_factory(ce->parent, return_value); in ZEND_METHOD()
5348 zend_class_entry *ce, *class_ce; in ZEND_METHOD() local
5371 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5373 RETURN_BOOL((ce != class_ce && instanceof_function(ce, class_ce))); in ZEND_METHOD()
5382 zend_class_entry *ce, *interface_ce; in ZEND_METHOD() local
5409 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5411 RETURN_BOOL(instanceof_function(ce, interface_ce)); in ZEND_METHOD()
5419 zend_class_entry *ce; in ZEND_METHOD() local
5425 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5427 if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS | in ZEND_METHOD()
5432 RETURN_BOOL(ce->get_iterator || instanceof_function(ce, zend_ce_traversable)); in ZEND_METHOD()
5440 zend_class_entry *ce; in ZEND_METHOD() local
5446 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5448 if ((ce->type == ZEND_INTERNAL_CLASS) && ce->info.internal.module) { in ZEND_METHOD()
5449 reflection_extension_factory(return_value, ce->info.internal.module->name); in ZEND_METHOD()
5458 zend_class_entry *ce; in ZEND_METHOD() local
5464 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5466 if ((ce->type == ZEND_INTERNAL_CLASS) && ce->info.internal.module) { in ZEND_METHOD()
5467 RETURN_STRING(ce->info.internal.module->name); in ZEND_METHOD()
5478 zend_class_entry *ce; in ZEND_METHOD() local
5484 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5486 zend_string *name = ce->name; in ZEND_METHOD()
5496 zend_class_entry *ce; in ZEND_METHOD() local
5502 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5504 zend_string *name = ce->name; in ZEND_METHOD()
5517 zend_class_entry *ce; in ZEND_METHOD() local
5523 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
5525 zend_string *name = ce->name; in ZEND_METHOD()
5550 zend_class_entry *ce; in ZEND_METHOD() local
5563 ce = classname_obj->ce; in ZEND_METHOD()
5565 if ((ce = zend_lookup_class(classname_str)) == NULL) { in ZEND_METHOD()
5571 property_info = zend_hash_find_ptr(&ce->properties_info, name); in ZEND_METHOD()
5574 && property_info->ce != ce)) { in ZEND_METHOD()
5582 …x(reflection_exception_ptr, 0, "Property %s::$%s does not exist", ZSTR_VAL(ce->name), ZSTR_VAL(nam… in ZEND_METHOD()
5589 ZVAL_STR_COPY(reflection_prop_class(object), property_info->ce->name); in ZEND_METHOD()
5591 ZVAL_STR_COPY(reflection_prop_class(object), ce->name); in ZEND_METHOD()
5599 intern->ce = ce; in ZEND_METHOD()
5732 member_p = zend_read_static_property_ex(intern->ce, ref->unmangled_name, 0); in ZEND_METHOD()
5745 if (!instanceof_function(Z_OBJCE_P(object), ref->prop ? ref->prop->ce : intern->ce)) { in ZEND_METHOD()
5750 member_p = zend_read_property_ex(intern->ce, Z_OBJ_P(object), ref->unmangled_name, 0, &rv); in ZEND_METHOD()
5797 zend_update_static_property_ex(intern->ce, ref->unmangled_name, value); in ZEND_METHOD()
5803 zend_update_property_ex(intern->ce, Z_OBJ_P(object), ref->unmangled_name, value); in ZEND_METHOD()
5823 member_p = zend_read_static_property_ex(intern->ce, ref->unmangled_name, 1); in ZEND_METHOD()
5838 if (!instanceof_function(Z_OBJCE_P(object), ref->prop ? ref->prop->ce : intern->ce)) { in ZEND_METHOD()
5844 EG(fake_scope) = intern->ce; in ZEND_METHOD()
5858 zend_class_entry *ce; in ZEND_METHOD() local
5865 ce = ref->prop ? ref->prop->ce : intern->ce; in ZEND_METHOD()
5866 zend_reflection_class_factory(ce, return_value); in ZEND_METHOD()
5900 ref->prop->attributes, 0, ref->prop->ce, ZEND_ATTRIBUTE_TARGET_PROPERTY, in ZEND_METHOD()
5901 ref->prop->ce->type == ZEND_USER_CLASS ? ref->prop->ce->info.user.filename : NULL); in ZEND_METHOD()
6009 if (UNEXPECTED(zval_update_constant_ex(return_value, prop_info->ce) != SUCCESS)) { in ZEND_METHOD()
6045 intern->ce = NULL; in ZEND_METHOD()
6182 static void add_extension_class(zend_class_entry *ce, zend_string *key, zval *class_array, zend_mod… in add_extension_class() argument
6184 …if (ce->type == ZEND_INTERNAL_CLASS && ce->info.internal.module && !strcasecmp(ce->info.internal.m… in add_extension_class()
6187 if (!zend_string_equals_ci(ce->name, key)) { in add_extension_class()
6192 name = ce->name; in add_extension_class()
6196 zend_reflection_class_factory(ce, &zclass); in add_extension_class()
6211 zend_class_entry *ce; in ZEND_METHOD() local
6219 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(EG(class_table), key, ce) { in ZEND_METHOD()
6220 add_extension_class(ce, key, return_value, module, 1); in ZEND_METHOD()
6231 zend_class_entry *ce; in ZEND_METHOD() local
6239 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(EG(class_table), key, ce) { in ZEND_METHOD()
6240 add_extension_class(ce, key, return_value, module, 0); in ZEND_METHOD()
6380 intern->ce = NULL; in ZEND_METHOD()
6717 zend_attribute *attr, zend_class_entry *ce, zend_object *obj, in call_attribute_constructor() argument
6720 zend_function *ctor = ce->constructor; in call_attribute_constructor()
6725 zend_throw_error(NULL, "Attribute constructor of class %s must be public", ZSTR_VAL(ce->name)); in call_attribute_constructor()
6764 zend_call_known_function(ctor, obj, obj->ce, NULL, argc, args, named_params); in call_attribute_constructor()
6809 zend_class_entry *ce; in ZEND_METHOD() local
6821 if (NULL == (ce = zend_lookup_class(attr->data->name))) { in ZEND_METHOD()
6826 if (NULL == (marker = zend_get_attribute_str(ce->attributes, ZEND_STRL("attribute")))) { in ZEND_METHOD()
6831 if (ce->type == ZEND_USER_CLASS) { in ZEND_METHOD()
6837 if (FAILURE == zend_get_attribute_value(&tmp, marker, 0, ce)) { in ZEND_METHOD()
6866 if (SUCCESS != object_init_ex(&obj, ce)) { in ZEND_METHOD()
6892 if (ce->constructor) { in ZEND_METHOD()
6893 …if (FAILURE == call_attribute_constructor(attr->data, ce, Z_OBJ(obj), args, argc, named_params, at… in ZEND_METHOD()
6899 …NULL, "Attribute class %s does not have a constructor, cannot pass arguments", ZSTR_VAL(ce->name)); in ZEND_METHOD()
6916 zend_class_entry *ce; in ZEND_METHOD() local
6917 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
6919 if (!(ce->ce_flags & ZEND_ACC_ENUM)) { in ZEND_METHOD()
6920 …zend_throw_exception_ex(reflection_exception_ptr, -1, "Class \"%s\" is not an enum", ZSTR_VAL(ce->… in ZEND_METHOD()
6928 zend_class_entry *ce; in ZEND_METHOD() local
6935 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
6937 zend_class_constant *class_const = zend_hash_find_ptr(&ce->constants_table, name); in ZEND_METHOD()
6948 zend_class_entry *ce; in ZEND_METHOD() local
6955 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
6957 zend_class_constant *constant = zend_hash_find_ptr(CE_CONSTANTS_TABLE(ce), name); in ZEND_METHOD()
6959 …zend_throw_exception_ex(reflection_exception_ptr, 0, "Case %s::%s does not exist", ZSTR_VAL(ce->na… in ZEND_METHOD()
6963 …zend_throw_exception_ex(reflection_exception_ptr, 0, "%s::%s is not a case", ZSTR_VAL(ce->name), Z… in ZEND_METHOD()
6967 reflection_enum_case_factory(ce, name, constant, return_value); in ZEND_METHOD()
6973 zend_class_entry *ce; in ZEND_METHOD() local
6981 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
6984 ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(CE_CONSTANTS_TABLE(ce), name, constant) { in ZEND_METHOD()
6987 reflection_enum_case_factory(ce, name, constant, &class_const); in ZEND_METHOD()
6996 zend_class_entry *ce; in ZEND_METHOD() local
7002 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
7003 RETURN_BOOL(ce->enum_backing_type != IS_UNDEF); in ZEND_METHOD()
7009 zend_class_entry *ce; in ZEND_METHOD() local
7015 GET_REFLECTION_OBJECT_PTR(ce); in ZEND_METHOD()
7017 if (ce->enum_backing_type == IS_UNDEF) { in ZEND_METHOD()
7020 zend_type type = ZEND_TYPE_INIT_CODE(ce->enum_backing_type, 0, 0); in ZEND_METHOD()
7039 …eflection_exception_ptr, 0, "Constant %s::%s is not a case", ZSTR_VAL(ref->ce->name), Z_STRVAL_P(c… in ZEND_METHOD()
7054 zend_reflection_class_factory(ref->ce, return_value); in ZEND_METHOD()
7069 if (ref->ce->enum_backing_type == IS_UNDEF) { in ZEND_METHOD()
7071 …n_exception_ptr, 0, "Enum case %s::%s is not a backed case", ZSTR_VAL(ref->ce->name), Z_STRVAL_P(c… in ZEND_METHOD()
7087 zval_update_constant_ex(&ref->value, ref->ce); in ZEND_METHOD()
7093 ZEND_ASSERT(intern->ce->enum_backing_type != IS_UNDEF); in ZEND_METHOD()
7112 if (intern->ce) { in ZEND_METHOD()
7118 intern->ce = zend_ce_fiber; in ZEND_METHOD()
7228 if (zend_hash_exists(&object->ce->properties_info, name) in _reflection_write_property()
7232 "Cannot set read-only property %s::$%s", ZSTR_VAL(object->ce->name), ZSTR_VAL(name)); in _reflection_write_property()