Lines Matching refs:prop_info

1341 static bool property_has_operation(zend_property_info *prop_info, zend_property_hook_kind kind)  in property_has_operation()  argument
1343 return (!(prop_info->flags & ZEND_ACC_VIRTUAL) in property_has_operation()
1344 && (kind == ZEND_PROPERTY_HOOK_GET || !(prop_info->flags & ZEND_ACC_READONLY))) in property_has_operation()
1345 || (prop_info->hooks && prop_info->hooks[kind]); in property_has_operation()
1410 static prop_variance prop_get_variance(const zend_property_info *prop_info) { in prop_get_variance() argument
1411 bool unbacked = prop_info->flags & ZEND_ACC_VIRTUAL; in prop_get_variance()
1412 if (unbacked && prop_info->hooks) { in prop_get_variance()
1413 if (!prop_info->hooks[ZEND_PROPERTY_HOOK_SET]) { in prop_get_variance()
1416 if (!prop_info->hooks[ZEND_PROPERTY_HOOK_GET]) { in prop_get_variance()
1671 ZEND_API void zend_verify_hooked_property(zend_class_entry *ce, zend_property_info *prop_info, zend… in zend_verify_hooked_property() argument
1673 if (!prop_info->hooks) { in zend_verify_hooked_property()
1676 bool abstract_error = prop_info->flags & ZEND_ACC_ABSTRACT; in zend_verify_hooked_property()
1679 if ((prop_info->flags & ZEND_ACC_VIRTUAL) && prop_info->offset != ZEND_VIRTUAL_PROPERTY_OFFSET) { in zend_verify_hooked_property()
1685 if (!(prop_info->flags & ZEND_ACC_VIRTUAL) in zend_verify_hooked_property()
1686 && !ZEND_TYPE_IS_SET(prop_info->type) in zend_verify_hooked_property()
1687 && Z_TYPE(ce->default_properties_table[OBJ_PROP_TO_NUM(prop_info->offset)]) == IS_UNDEF) { in zend_verify_hooked_property()
1688 ZVAL_NULL(&ce->default_properties_table[OBJ_PROP_TO_NUM(prop_info->offset)]); in zend_verify_hooked_property()
1691 zend_function *func = prop_info->hooks[i]; in zend_verify_hooked_property()
1695 && !(prop_info->flags & ZEND_ACC_VIRTUAL) in zend_verify_hooked_property()
1696 && prop_info->hooks[ZEND_PROPERTY_HOOK_SET]) { in zend_verify_hooked_property()
1709 if ((prop_info->flags & ZEND_ACC_VIRTUAL) in zend_verify_hooked_property()
1710 && (prop_info->flags & ZEND_ACC_PPP_SET_MASK) in zend_verify_hooked_property()
1711 && (!prop_info->hooks[ZEND_PROPERTY_HOOK_GET] || !prop_info->hooks[ZEND_PROPERTY_HOOK_SET])) { in zend_verify_hooked_property()
1712 const char *prefix = !prop_info->hooks[ZEND_PROPERTY_HOOK_GET] in zend_verify_hooked_property()
1726 …ND_COLD ZEND_NORETURN void zend_hooked_property_variance_error(const zend_property_info *prop_info) in zend_hooked_property_variance_error() argument
1728 …zend_string *value_param_name = prop_info->hooks[ZEND_PROPERTY_HOOK_SET]->op_array.arg_info[0].nam… in zend_hooked_property_variance_error()
1729 zend_hooked_property_variance_error_ex(value_param_name, prop_info->ce->name, prop_info->name); in zend_hooked_property_variance_error()
1732 ZEND_API inheritance_status zend_verify_property_hook_variance(const zend_property_info *prop_info,… in zend_verify_property_hook_variance() argument
1734 ZEND_ASSERT(prop_info->hooks && prop_info->hooks[ZEND_PROPERTY_HOOK_SET] == func); in zend_verify_property_hook_variance()
1741 if (!ZEND_TYPE_IS_SET(prop_info->type)) { in zend_verify_property_hook_variance()
1745 zend_class_entry *ce = prop_info->ce; in zend_verify_property_hook_variance()
1746 return zend_perform_covariant_type_check(ce, prop_info->type, ce, value_arg_info->type); in zend_verify_property_hook_variance()
2920 new_fn->common.prop_info = new_prop; in zend_do_traits_property_binding()
3003 const zend_property_info *prop_info; in zend_verify_abstract_class() local
3004 ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop_info) { in zend_verify_abstract_class()
3005 if (prop_info->hooks) { in zend_verify_abstract_class()
3007 const zend_function *fn = prop_info->hooks[i]; in zend_verify_abstract_class()
3375 zend_property_info *prop_info, *new_prop_info; in zend_lazy_class_load() local
3377 prop_info = Z_PTR(p->val); in zend_lazy_class_load()
3378 ZEND_ASSERT(prop_info->ce == pce); in zend_lazy_class_load()
3379 ZEND_ASSERT(prop_info->prototype == prop_info); in zend_lazy_class_load()
3382 memcpy(new_prop_info, prop_info, sizeof(zend_property_info)); in zend_lazy_class_load()
3389 memcpy(new_prop_info->hooks, prop_info->hooks, ZEND_PROPERTY_HOOK_STRUCT_SIZE); in zend_lazy_class_load()
3393 ZEND_ASSERT(hook->prop_info == prop_info); in zend_lazy_class_load()
3394 hook->prop_info = new_prop_info; in zend_lazy_class_load()
3605 const zend_property_info *prop_info; in zend_do_link_class() local
3606 ZEND_HASH_MAP_FOREACH_PTR(&ce->properties_info, prop_info) { in zend_do_link_class()
3607 if (prop_info->ce == ce && prop_info->hooks && prop_info->hooks[ZEND_PROPERTY_HOOK_SET]) { in zend_do_link_class()
3608 … switch (zend_verify_property_hook_variance(prop_info, prop_info->hooks[ZEND_PROPERTY_HOOK_SET])) { in zend_do_link_class()
3612 zend_hooked_property_variance_error(prop_info); in zend_do_link_class()
3615 add_property_hook_obligation(ce, prop_info, prop_info->hooks[ZEND_PROPERTY_HOOK_SET]); in zend_do_link_class()