Lines Matching refs:attr

31 void validate_attribute(zend_attribute *attr, uint32_t target, zend_class_entry *scope)  in validate_attribute()  argument
34 if (attr->argc > 0) { in validate_attribute()
40 if (FAILURE == zend_get_attribute_value(&flags, attr, 0, NULL)) { in validate_attribute()
79 zend_attribute *attr; in get_attribute() local
81 ZEND_HASH_FOREACH_PTR(attributes, attr) { in get_attribute()
82 if (attr->offset == offset && zend_string_equals(attr->lcname, lcname)) { in get_attribute()
83 return attr; in get_attribute()
94 zend_attribute *attr; in get_attribute_str() local
96 ZEND_HASH_FOREACH_PTR(attributes, attr) { in get_attribute_str()
97 if (attr->offset == offset && ZSTR_LEN(attr->lcname) == len) { in get_attribute_str()
98 if (0 == memcmp(ZSTR_VAL(attr->lcname), str, len)) { in get_attribute_str()
99 return attr; in get_attribute_str()
128 ZEND_API zend_result zend_get_attribute_value(zval *ret, zend_attribute *attr, uint32_t i, zend_cla… in zend_get_attribute_value() argument
130 if (i >= attr->argc) { in zend_get_attribute_value()
134 ZVAL_COPY_OR_DUP(ret, &attr->args[i].value); in zend_get_attribute_value()
172 ZEND_API bool zend_is_attribute_repeated(HashTable *attributes, zend_attribute *attr) in zend_is_attribute_repeated() argument
177 if (other != attr && other->offset == attr->offset) { in zend_is_attribute_repeated()
178 if (zend_string_equals(other->lcname, attr->lcname)) { in zend_is_attribute_repeated()
189 zend_attribute *attr = Z_PTR_P(v); in attr_free() local
190 bool persistent = attr->flags & ZEND_ATTRIBUTE_PERSISTENT; in attr_free()
192 zend_string_release(attr->name); in attr_free()
193 zend_string_release(attr->lcname); in attr_free()
195 for (uint32_t i = 0; i < attr->argc; i++) { in attr_free()
196 if (attr->args[i].name) { in attr_free()
197 zend_string_release(attr->args[i].name); in attr_free()
200 zval_internal_ptr_dtor(&attr->args[i].value); in attr_free()
202 zval_ptr_dtor(&attr->args[i].value); in attr_free()
206 pefree(attr, persistent); in attr_free()
217 zend_attribute *attr = pemalloc(ZEND_ATTRIBUTE_SIZE(argc), persistent); in zend_add_attribute() local
220 attr->name = zend_string_copy(name); in zend_add_attribute()
222 attr->name = zend_string_dup(name, persistent); in zend_add_attribute()
225 attr->lcname = zend_string_tolower_ex(attr->name, persistent); in zend_add_attribute()
226 attr->flags = flags; in zend_add_attribute()
227 attr->lineno = lineno; in zend_add_attribute()
228 attr->offset = offset; in zend_add_attribute()
229 attr->argc = argc; in zend_add_attribute()
233 attr->args[i].name = NULL; in zend_add_attribute()
234 ZVAL_UNDEF(&attr->args[i].value); in zend_add_attribute()
237 zend_hash_next_index_insert_ptr(*attributes, attr); in zend_add_attribute()
239 return attr; in zend_add_attribute()
263 zend_attribute *attr = zend_add_class_attribute(ce, zend_ce_attribute->name, 1); in zend_internal_attribute_register() local
264 ZVAL_LONG(&attr->args[0].value, flags); in zend_internal_attribute_register()
277 zend_internal_attribute *attr; in zend_register_attribute_ce() local
282 attr = zend_internal_attribute_register(zend_ce_attribute, ZEND_ATTRIBUTE_TARGET_CLASS); in zend_register_attribute_ce()
283 attr->validator = validate_attribute; in zend_register_attribute_ce()