php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
character_data.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2021 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
9
10
13{
15
16 element = lexbor_mraw_calloc(document->mraw,
18 if (element == NULL) {
19 return NULL;
20 }
21
23
24 node->owner_document = lxb_dom_document_owner(document);
26
27 return element;
28}
29
32 const lxb_dom_character_data_t *ch_data)
33{
35
37 if (new == NULL) {
38 return NULL;
39 }
40
43 }
44
45 return new;
46}
47
50{
51 lxb_dom_node_t *node;
54
55 data = character_data->data;
56 node = lxb_dom_interface_node(character_data);
57 doc = node->owner_document;
58
60
61 lexbor_str_destroy(&data, doc->text, false);
62
63 return NULL;
64}
65
68 const lxb_dom_character_data_t *src)
69{
71
72 status = lxb_dom_node_interface_copy(&dst->node, &src->node, false);
73 if (status != LXB_STATUS_OK) {
74 return status;
75 }
76
77 dst->data.length = 0;
78
79 if (lexbor_str_copy(&dst->data, &src->data,
80 lxb_dom_interface_node(dst)->owner_document->text) == NULL)
81 {
83 }
84
85 return LXB_STATUS_OK;
86}
87
88/* TODO: oh, need to... https://dom.spec.whatwg.org/#concept-cd-replace */
91 const lxb_char_t *data, size_t len,
92 size_t offset, size_t count)
93{
94 if (ch_data->data.data == NULL) {
95 lexbor_str_init(&ch_data->data, ch_data->node.owner_document->text, len);
96 if (ch_data->data.data == NULL) {
98 }
99 }
100 else if (lexbor_str_size(&ch_data->data) < len) {
101 const lxb_char_t *data;
102
103 data = lexbor_str_realloc(&ch_data->data,
104 ch_data->node.owner_document->text, (len + 1));
105 if (data == NULL) {
107 }
108 }
109
110 memcpy(ch_data->data.data, data, sizeof(lxb_char_t) * len);
111
112 ch_data->data.data[len] = 0x00;
113 ch_data->data.length = len;
114
115 return LXB_STATUS_OK;
116}
size_t len
Definition apprentice.c:174
count(Countable|array $value, int $mode=COUNT_NORMAL)
lxb_dom_character_data_t * lxb_dom_character_data_interface_destroy(lxb_dom_character_data_t *character_data)
lxb_dom_character_data_t * lxb_dom_character_data_interface_clone(lxb_dom_document_t *document, const lxb_dom_character_data_t *ch_data)
lxb_dom_character_data_t * lxb_dom_character_data_interface_create(lxb_dom_document_t *document)
lxb_status_t lxb_dom_character_data_interface_copy(lxb_dom_character_data_t *dst, const lxb_dom_character_data_t *src)
lxb_status_t lxb_dom_character_data_replace(lxb_dom_character_data_t *ch_data, const lxb_char_t *data, size_t len, size_t offset, size_t count)
@ LXB_STATUS_ERROR_MEMORY_ALLOCATION
Definition base.h:51
@ LXB_STATUS_OK
Definition base.h:49
DNS_STATUS status
Definition dns_win32.c:49
struct lxb_dom_document lxb_dom_document_t
Definition interface.h:41
#define lxb_dom_interface_node(obj)
Definition interface.h:31
struct lxb_dom_node lxb_dom_node_t
Definition interface.h:38
struct lxb_dom_character_data lxb_dom_character_data_t
Definition interface.h:45
lxb_inline lxb_dom_document_t * lxb_dom_document_owner(lxb_dom_document_t *document)
Definition document.h:198
@ LXB_DOM_NODE_TYPE_UNDEF
Definition node.h:24
memcpy(ptr1, ptr2, size)
zend_long offset
#define NULL
Definition gdcache.h:45
lxb_status_t lxb_dom_node_interface_copy(lxb_dom_node_t *dst, const lxb_dom_node_t *src, bool is_attr)
Definition node.c:136
lxb_dom_node_t * lxb_dom_node_interface_destroy(lxb_dom_node_t *node)
Definition node.c:124
void * lexbor_mraw_calloc(lexbor_mraw_t *mraw, size_t size)
Definition mraw.c:227
zend_constant * data
lxb_char_t * lexbor_str_copy(lexbor_str_t *dest, const lexbor_str_t *target, lexbor_mraw_t *mraw)
Definition str.c:247
lxb_char_t * lexbor_str_realloc(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t new_size)
Definition str.c:94
lxb_char_t * lexbor_str_init(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t size)
Definition str.c:22
lexbor_str_t * lexbor_str_destroy(lexbor_str_t *str, lexbor_mraw_t *mraw, bool destroy_obj)
Definition str.c:76
lxb_inline size_t lexbor_str_size(lexbor_str_t *str)
Definition str.h:199
lxb_char_t * data
Definition str.h:47
size_t length
Definition str.h:48
lexbor_mraw_t * mraw
Definition document.h:53
lexbor_mraw_t * text
Definition document.h:54
lxb_dom_document_t * owner_document
Definition node.h:50
lxb_dom_node_type_t type
Definition node.h:59
unsigned int lxb_status_t
Definition types.h:28
unsigned char lxb_char_t
Definition types.h:27
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)