Lines Matching refs:ce

27 		if (ce->propertyName) { \
37 zend_object *zend_enum_new(zval *result, zend_class_entry *ce, zend_string *case_name, zval *backin… in zend_enum_new() argument
39 zend_object *zobj = zend_objects_new(ce); in zend_enum_new()
52 static void zend_verify_enum_properties(zend_class_entry *ce) in zend_verify_enum_properties() argument
56 ZEND_HASH_FOREACH_PTR(&ce->properties_info, property_info) { in zend_verify_enum_properties()
61 ce->enum_backing_type != IS_UNDEF in zend_verify_enum_properties()
68 ZSTR_VAL(ce->name)); in zend_verify_enum_properties()
72 static void zend_verify_enum_magic_methods(zend_class_entry *ce) in zend_verify_enum_magic_methods() argument
98 if (zend_hash_str_exists(&ce->function_table, forbidden_method, strlen(forbidden_method))) { in zend_verify_enum_magic_methods()
104 static void zend_verify_enum_interfaces(zend_class_entry *ce) in zend_verify_enum_interfaces() argument
106 if (zend_class_implements_interface(ce, zend_ce_serializable)) { in zend_verify_enum_interfaces()
112 void zend_verify_enum(zend_class_entry *ce) in zend_verify_enum() argument
114 zend_verify_enum_properties(ce); in zend_verify_enum()
115 zend_verify_enum_magic_methods(ce); in zend_verify_enum()
116 zend_verify_enum_interfaces(ce); in zend_verify_enum()
164 void zend_enum_add_interfaces(zend_class_entry *ce) in zend_enum_add_interfaces() argument
166 uint32_t num_interfaces_before = ce->num_interfaces; in zend_enum_add_interfaces()
168 ce->num_interfaces++; in zend_enum_add_interfaces()
169 if (ce->enum_backing_type != IS_UNDEF) { in zend_enum_add_interfaces()
170 ce->num_interfaces++; in zend_enum_add_interfaces()
173 ZEND_ASSERT(!(ce->ce_flags & ZEND_ACC_RESOLVED_INTERFACES)); in zend_enum_add_interfaces()
175 ce->interface_names = erealloc(ce->interface_names, sizeof(zend_class_name) * ce->num_interfaces); in zend_enum_add_interfaces()
177 ce->interface_names[num_interfaces_before].name = zend_string_copy(zend_ce_unit_enum->name); in zend_enum_add_interfaces()
178ce->interface_names[num_interfaces_before].lc_name = zend_string_init("unitenum", sizeof("unitenum… in zend_enum_add_interfaces()
180 if (ce->enum_backing_type != IS_UNDEF) { in zend_enum_add_interfaces()
181 ce->interface_names[num_interfaces_before + 1].name = zend_string_copy(zend_ce_backed_enum->name); in zend_enum_add_interfaces()
182ce->interface_names[num_interfaces_before + 1].lc_name = zend_string_init("backedenum", sizeof("ba… in zend_enum_add_interfaces()
188 zend_class_entry *ce = execute_data->func->common.scope; in ZEND_NAMED_FUNCTION() local
195 ZEND_HASH_FOREACH_PTR(CE_CONSTANTS_TABLE(ce), c) { in ZEND_NAMED_FUNCTION()
201 if (zval_update_constant_ex(zv, c->ce) == FAILURE) { in ZEND_NAMED_FUNCTION()
212 zend_class_entry *ce = execute_data->func->common.scope; in zend_enum_from_base() local
218 if (ce->enum_backing_type == IS_LONG) { in zend_enum_from_base()
223 case_name_zv = zend_hash_index_find(ce->backed_enum_table, long_key); in zend_enum_from_base()
225 ZEND_ASSERT(ce->enum_backing_type == IS_STRING); in zend_enum_from_base()
246 case_name_zv = zend_hash_find(ce->backed_enum_table, string_key); in zend_enum_from_base()
254 if (ce->enum_backing_type == IS_LONG) { in zend_enum_from_base()
255 …error(ZEND_LONG_FMT " is not a valid backing value for enum \"%s\"", long_key, ZSTR_VAL(ce->name)); in zend_enum_from_base()
257 ZEND_ASSERT(ce->enum_backing_type == IS_STRING); in zend_enum_from_base()
258 …r("\"%s\" is not a valid backing value for enum \"%s\"", ZSTR_VAL(string_key), ZSTR_VAL(ce->name)); in zend_enum_from_base()
266 zend_class_constant *c = zend_hash_find_ptr(CE_CONSTANTS_TABLE(ce), Z_STR_P(case_name_zv)); in zend_enum_from_base()
270 if (zval_update_constant_ex(case_zv, c->ce) == FAILURE) { in zend_enum_from_base()
303 void zend_enum_register_funcs(zend_class_entry *ce) in zend_enum_register_funcs() argument
314 cases_function->scope = ce; in zend_enum_register_funcs()
317 if (!zend_hash_add_ptr(&ce->function_table, ZSTR_KNOWN(ZEND_STR_CASES), cases_function)) { in zend_enum_register_funcs()
318 zend_error_noreturn(E_COMPILE_ERROR, "Cannot redeclare %s::cases()", ZSTR_VAL(ce->name)); in zend_enum_register_funcs()
321 if (ce->enum_backing_type != IS_UNDEF) { in zend_enum_register_funcs()
329 from_function->scope = ce; in zend_enum_register_funcs()
334 if (!zend_hash_add_ptr(&ce->function_table, ZSTR_KNOWN(ZEND_STR_FROM), from_function)) { in zend_enum_register_funcs()
336 "Cannot redeclare %s::from()", ZSTR_VAL(ce->name)); in zend_enum_register_funcs()
346 try_from_function->scope = ce; in zend_enum_register_funcs()
352 &ce->function_table, ZSTR_KNOWN(ZEND_STR_TRYFROM_LOWERCASE), try_from_function)) { in zend_enum_register_funcs()
354 "Cannot redeclare %s::tryFrom()", ZSTR_VAL(ce->name)); in zend_enum_register_funcs()
359 void zend_enum_register_props(zend_class_entry *ce) in zend_enum_register_props() argument
361 ce->ce_flags |= ZEND_ACC_NO_DYNAMIC_PROPERTIES; in zend_enum_register_props()
366 …zend_declare_typed_property(ce, ZSTR_KNOWN(ZEND_STR_NAME), &name_default_value, ZEND_ACC_PUBLIC | … in zend_enum_register_props()
368 if (ce->enum_backing_type != IS_UNDEF) { in zend_enum_register_props()
371 zend_type value_type = ZEND_TYPE_INIT_CODE(ce->enum_backing_type, 0, 0); in zend_enum_register_props()
372 …zend_declare_typed_property(ce, ZSTR_KNOWN(ZEND_STR_VALUE), &value_default_value, ZEND_ACC_PUBLIC … in zend_enum_register_props()
396 zend_class_entry *ce = zend_register_internal_class(&tmp_ce); in zend_register_internal_enum() local
397 ce->ce_flags |= ZEND_ACC_ENUM; in zend_register_internal_enum()
398 ce->enum_backing_type = type; in zend_register_internal_enum()
400 ce->backed_enum_table = pemalloc(sizeof(HashTable), 1); in zend_register_internal_enum()
401 zend_hash_init(ce->backed_enum_table, 0, NULL, ZVAL_PTR_DTOR, 1); in zend_register_internal_enum()
404 zend_enum_register_props(ce); in zend_register_internal_enum()
407 ce, unit_enum_methods, &ce->function_table, EG(current_module)->type); in zend_register_internal_enum()
408 zend_class_implements(ce, 1, zend_ce_unit_enum); in zend_register_internal_enum()
411 ce, backed_enum_methods, &ce->function_table, EG(current_module)->type); in zend_register_internal_enum()
412 zend_class_implements(ce, 1, zend_ce_backed_enum); in zend_register_internal_enum()
415 return ce; in zend_register_internal_enum()
458 ZEND_API void zend_enum_add_case(zend_class_entry *ce, zend_string *case_name, zval *value) in zend_enum_add_case() argument
461 ZEND_ASSERT(ce->enum_backing_type == Z_TYPE_P(value)); in zend_enum_add_case()
469 zend_hash_index_add_new(ce->backed_enum_table, Z_LVAL_P(value), &case_name_zv); in zend_enum_add_case()
471 zend_hash_add_new(ce->backed_enum_table, Z_STR_P(value), &case_name_zv); in zend_enum_add_case()
474 ZEND_ASSERT(ce->enum_backing_type == IS_UNDEF); in zend_enum_add_case()
479 Z_AST(ast_zv) = create_enum_case_ast(ce->name, case_name, value); in zend_enum_add_case()
481 ce, case_name, &ast_zv, ZEND_ACC_PUBLIC, NULL); in zend_enum_add_case()
485 ZEND_API void zend_enum_add_case_cstr(zend_class_entry *ce, const char *name, zval *value) in zend_enum_add_case_cstr() argument
488 zend_enum_add_case(ce, name_str, value); in zend_enum_add_case_cstr()
492 ZEND_API zend_object *zend_enum_get_case(zend_class_entry *ce, zend_string *name) { in zend_enum_get_case() argument
493 zend_class_constant *c = zend_hash_find_ptr(CE_CONSTANTS_TABLE(ce), name); in zend_enum_get_case()
497 if (zval_update_constant_ex(&c->value, c->ce) == FAILURE) { in zend_enum_get_case()
505 ZEND_API zend_object *zend_enum_get_case_cstr(zend_class_entry *ce, const char *name) { in zend_enum_get_case_cstr() argument
507 zend_object *result = zend_enum_get_case(ce, name_str); in zend_enum_get_case_cstr()