44 size_t len,
void *ctx);
55 if (element ==
NULL) {
185 return declr->
u.
user;
200 walk.
weak = with_weak;
203 lxb_html_element_style_walk_cb, &walk);
224 while (weak !=
NULL) {
254 element->
list = list;
293 if (spec < node->sp) {
294 return lxb_html_element_style_weak_append(doc, node, declr, spec);
297 status = lxb_html_element_style_weak_append(doc, node,
332 if (new_weak ==
NULL) {
336 new_weak->
value = declr;
340 node->
weak = new_weak;
348 if (weak->
sp <= spec) {
349 node->
weak = new_weak;
350 new_weak->
next = weak;
358 while (weak !=
NULL) {
359 if (weak->
sp <= spec) {
360 prev->next = new_weak;
361 new_weak->
next = weak;
370 prev->next = new_weak;
389 while (rule !=
NULL) {
453 while (weak !=
NULL) {
489 style->
sp = weak->
sp;
506 while (weak !=
NULL) {
532 while (weak !=
NULL) {
572 style->
sp = weak->
sp;
593 lxb_html_element_style_serialize_cb, &
context);
641 lxb_html_element_style_serialize_str_cb, &
context);
649 size_t len,
void *ctx)
lexbor_avl_node_t * lexbor_avl_search(lexbor_avl_t *avl, lexbor_avl_node_t *node, size_t type)
lexbor_avl_node_t * lexbor_avl_insert(lexbor_avl_t *avl, lexbor_avl_node_t **scope, size_t type, void *value)
void lexbor_avl_remove_by_node(lexbor_avl_t *avl, lexbor_avl_node_t **root, lexbor_avl_node_t *node)
lxb_status_t lexbor_avl_foreach(lexbor_avl_t *avl, lexbor_avl_node_t **scope, lexbor_avl_node_f cb, void *ctx)
struct lexbor_avl_node lexbor_avl_node_t
struct lexbor_avl lexbor_avl_t
prev(array|object &$array)
lxb_status_t(* lexbor_serialize_cb_f)(const lxb_char_t *data, size_t len, void *ctx)
@ LXB_STATUS_ERROR_MEMORY_ALLOCATION
#define lexbor_serialize_write(cb, data, length, ctx, status)
struct lxb_css_rule_declaration lxb_css_rule_declaration_t
struct lxb_css_rule_declaration_list lxb_css_rule_declaration_list_t
@ LXB_CSS_PROPERTY__UNDEF
@ LXB_CSS_PROPERTY__CUSTOM
LXB_API lxb_css_rule_declaration_list_t * lxb_css_declaration_list_parse(lxb_css_parser_t *parser, lxb_css_memory_t *mem, const lxb_char_t *data, size_t length)
void * lexbor_dobject_free(lexbor_dobject_t *dobject, void *data)
void * lexbor_dobject_alloc(lexbor_dobject_t *dobject)
struct lxb_dom_document lxb_dom_document_t
#define lxb_dom_interface_node(obj)
struct lxb_dom_node lxb_dom_node_t
@ LXB_DOM_NODE_TYPE_ELEMENT
#define lxb_html_interface_element(obj)
#define lxb_html_interface_document(obj)
struct lxb_html_element lxb_html_element_t
struct lxb_html_document lxb_html_document_t
lxb_inline lxb_dom_document_t * lxb_html_document_original_ref(lxb_html_document_t *document)
lxb_status_t(* lxb_html_element_style_cb_f)(lxb_html_element_t *element, const lxb_css_rule_declaration_t *declr, void *ctx, lxb_css_selector_specificity_t spec, bool is_weak)
lxb_html_element_style_opt_t
void lxb_dom_node_remove(lxb_dom_node_t *node)
lxb_dom_node_t * lxb_dom_node_destroy_deep(lxb_dom_node_t *root)
void lxb_dom_node_insert_child(lxb_dom_node_t *to, lxb_dom_node_t *node)
lxb_dom_node_t * lxb_dom_node_destroy(lxb_dom_node_t *node)
lxb_dom_node_t * lxb_dom_node_interface_destroy(lxb_dom_node_t *node)
lxb_dom_node_t * lxb_html_document_parse_fragment(lxb_html_document_t *document, lxb_dom_element_t *element, const lxb_char_t *html, size_t size)
uintptr_t lxb_html_document_css_customs_id(lxb_html_document_t *document, const lxb_char_t *key, size_t length)
void lxb_html_element_style_remove_by_id(lxb_html_element_t *element, uintptr_t id)
lxb_status_t lxb_html_element_style_list_append(lxb_html_element_t *element, lxb_css_rule_declaration_list_t *list, lxb_css_selector_specificity_t spec)
lxb_html_style_node_t * lxb_html_element_style_remove_all_not(lxb_html_document_t *doc, lexbor_avl_node_t **root, lxb_html_style_node_t *style, bool bs)
const lxb_css_rule_declaration_t * lxb_html_element_style_by_name(lxb_html_element_t *element, const lxb_char_t *name, size_t size)
const void * lxb_html_element_css_property_by_id(lxb_html_element_t *element, uintptr_t id)
lxb_status_t lxb_html_element_style_parse(lxb_html_element_t *element, const lxb_char_t *style, size_t size)
lxb_html_element_t * lxb_html_element_inner_html_set(lxb_html_element_t *element, const lxb_char_t *html, size_t size)
const lxb_html_style_node_t * lxb_html_element_style_node_by_name(lxb_html_element_t *element, const lxb_char_t *name, size_t size)
lxb_html_style_node_t * lxb_html_element_style_remove_by_list(lxb_html_document_t *doc, lexbor_avl_node_t **root, lxb_html_style_node_t *style, lxb_css_rule_declaration_list_t *list)
const lxb_html_style_node_t * lxb_html_element_style_node_by_id(lxb_html_element_t *element, uintptr_t id)
lxb_status_t lxb_html_element_style_append(lxb_html_element_t *element, lxb_css_rule_declaration_t *declr, lxb_css_selector_specificity_t spec)
lxb_status_t lxb_html_element_style_walk(lxb_html_element_t *element, lxb_html_element_style_cb_f cb, void *ctx, bool with_weak)
lxb_html_style_node_t * lxb_html_element_style_remove_all(lxb_html_document_t *doc, lexbor_avl_node_t **root, lxb_html_style_node_t *style)
const lxb_css_rule_declaration_t * lxb_html_element_style_by_id(lxb_html_element_t *element, uintptr_t id)
lxb_status_t lxb_html_element_style_serialize(lxb_html_element_t *element, lxb_html_element_style_opt_t opt, lexbor_serialize_cb_f cb, void *ctx)
lxb_html_element_t * lxb_html_element_interface_destroy(lxb_html_element_t *element)
lxb_html_element_t * lxb_html_element_interface_create(lxb_html_document_t *document)
lxb_status_t lxb_html_element_style_serialize_str(lxb_html_element_t *element, lexbor_str_t *str, lxb_html_element_style_opt_t opt)
void lxb_html_element_style_remove_by_name(lxb_html_element_t *element, const lxb_char_t *name, size_t size)
void * lexbor_mraw_calloc(lexbor_mraw_t *mraw, size_t size)
LXB_API const void * lxb_css_property_initial_by_id(uintptr_t id)
struct lxb_css_rule lxb_css_rule_t
#define lxb_css_rule_declaration(rule)
lxb_inline void lxb_css_rule_ref_dec_destroy(lxb_css_rule_t *rule)
lxb_inline lxb_status_t lxb_css_rule_ref_inc(lxb_css_rule_t *rule)
#define lxb_css_rule(rule)
@ LXB_CSS_RULE_DECLARATION
LXB_API lxb_status_t lxb_css_rule_serialize(const lxb_css_rule_t *rule, lexbor_serialize_cb_f cb, void *ctx)
lxb_inline void lxb_css_rule_ref_dec(lxb_css_rule_t *rule)
#define lxb_css_selector_sp_up_s(num)
uint32_t lxb_css_selector_specificity_t
#define lxb_css_selector_sp_set_i(sp, num)
#define lxb_css_selector_sp_s(sp)
lxb_char_t * lexbor_str_append(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *buff, size_t length)
lxb_char_t * lexbor_str_init(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t size)
union lxb_css_rule_declaration::@176340105247063216126056202012377115341175047152 u
lxb_css_property__custom_t * custom
lxb_dom_node_t * first_child
lxb_dom_document_t * owner_document
lxb_css_parser_t * parser
lxb_css_memory_t * memory
lxb_html_document_css_t css
lxb_dom_document_t dom_document
lxb_html_element_style_cb_f cb
lxb_html_element_t * element
lexbor_avl_node_t * style
lxb_css_rule_declaration_list_t * list
lxb_dom_element_t element
lxb_css_selector_specificity_t sp
lxb_html_style_weak_t * weak
lxb_html_style_weak_t * next
lxb_css_selector_specificity_t sp
uintptr_t lxb_html_style_id_by_name(lxb_html_document_t *doc, const lxb_char_t *name, size_t size)
struct lxb_html_style_weak lxb_html_style_weak_t
unsigned int lxb_status_t
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)