1 /* 2 * Copyright (C) 2018-2020 Alexander Borisov 3 * 4 * Author: Alexander Borisov <borisov@lexbor.com> 5 */ 6 7 #include "lexbor/html/token_attr.h" 8 9 10 lxb_html_token_attr_t * lxb_html_token_attr_create(lexbor_dobject_t * dobj)11lxb_html_token_attr_create(lexbor_dobject_t *dobj) 12 { 13 return lexbor_dobject_calloc(dobj); 14 } 15 16 void lxb_html_token_attr_clean(lxb_html_token_attr_t * attr)17lxb_html_token_attr_clean(lxb_html_token_attr_t *attr) 18 { 19 memset(attr, 0, sizeof(lxb_html_token_attr_t)); 20 } 21 22 lxb_html_token_attr_t * lxb_html_token_attr_destroy(lxb_html_token_attr_t * attr,lexbor_dobject_t * dobj)23lxb_html_token_attr_destroy(lxb_html_token_attr_t *attr, lexbor_dobject_t *dobj) 24 { 25 return lexbor_dobject_free(dobj, attr); 26 } 27 28 const lxb_char_t * lxb_html_token_attr_name(lxb_html_token_attr_t * attr,size_t * length)29lxb_html_token_attr_name(lxb_html_token_attr_t *attr, size_t *length) 30 { 31 if (attr->name == NULL) { 32 if (length != NULL) { 33 *length = 0; 34 } 35 36 return NULL; 37 } 38 39 if (length != NULL) { 40 *length = attr->name->entry.length; 41 } 42 43 return lexbor_hash_entry_str(&attr->name->entry); 44 } 45