php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
collection.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018-2022 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
9
10
13{
15
16 col = lexbor_calloc(1, sizeof(lxb_dom_collection_t));
17 if (col == NULL) {
18 return NULL;
19 }
20
21 col->document = document;
22
23 return col;
24}
25
27lxb_dom_collection_init(lxb_dom_collection_t *col, size_t start_list_size)
28{
29 if (col == NULL) {
31 }
32
33 if (col->document == NULL) {
35 }
36
37 return lexbor_array_init(&col->array, start_list_size);
38}
39
42{
43 if (col == NULL) {
44 return NULL;
45 }
46
47 if (col->array.list != NULL) {
48 lexbor_array_destroy(&col->array, false);
49
50 col->array.list = NULL;
51 }
52
53 if (self_destroy) {
54 return lexbor_free(col);
55 }
56
57 return col;
58}
59
60/*
61 * No inline functions for ABI.
62 */
64lxb_dom_collection_make_noi(lxb_dom_document_t *document, size_t start_list_size)
65{
66 return lxb_dom_collection_make(document, start_list_size);
67}
68
69void
74
80
86
89{
90 return lxb_dom_collection_node(col, idx);
91}
92
93size_t
lxb_dom_collection_t * lxb_dom_collection_make_noi(lxb_dom_document_t *document, size_t start_list_size)
Definition collection.c:64
void lxb_dom_collection_clean_noi(lxb_dom_collection_t *col)
Definition collection.c:70
lxb_dom_collection_t * lxb_dom_collection_destroy(lxb_dom_collection_t *col, bool self_destroy)
Definition collection.c:41
lxb_dom_collection_t * lxb_dom_collection_create(lxb_dom_document_t *document)
Definition collection.c:12
lxb_dom_node_t * lxb_dom_collection_node_noi(lxb_dom_collection_t *col, size_t idx)
Definition collection.c:88
lxb_status_t lxb_dom_collection_append_noi(lxb_dom_collection_t *col, void *value)
Definition collection.c:76
lxb_status_t lxb_dom_collection_init(lxb_dom_collection_t *col, size_t start_list_size)
Definition collection.c:27
size_t lxb_dom_collection_length_noi(lxb_dom_collection_t *col)
Definition collection.c:94
lxb_dom_element_t * lxb_dom_collection_element_noi(lxb_dom_collection_t *col, size_t idx)
Definition collection.c:82
lxb_inline lxb_dom_collection_t * lxb_dom_collection_make(lxb_dom_document_t *document, size_t start_list_size)
Definition collection.h:41
lxb_inline lxb_status_t lxb_dom_collection_append(lxb_dom_collection_t *col, void *value)
Definition collection.h:63
lxb_inline size_t lxb_dom_collection_length(lxb_dom_collection_t *col)
Definition collection.h:81
lxb_inline void lxb_dom_collection_clean(lxb_dom_collection_t *col)
Definition collection.h:57
lxb_inline lxb_dom_node_t * lxb_dom_collection_node(lxb_dom_collection_t *col, size_t idx)
Definition collection.h:75
lxb_inline lxb_dom_element_t * lxb_dom_collection_element(lxb_dom_collection_t *col, size_t idx)
Definition collection.h:69
@ LXB_STATUS_ERROR_INCOMPLETE_OBJECT
Definition base.h:54
@ LXB_STATUS_ERROR_WRONG_ARGS
Definition base.h:58
struct lxb_dom_document lxb_dom_document_t
Definition interface.h:41
struct lxb_dom_node lxb_dom_node_t
Definition interface.h:38
struct lxb_dom_element lxb_dom_element_t
Definition interface.h:39
lexbor_array_t * lexbor_array_destroy(lexbor_array_t *array, bool self_destroy)
Definition array.c:47
lxb_status_t lexbor_array_init(lexbor_array_t *array, size_t size)
Definition array.c:17
#define NULL
Definition gdcache.h:45
LXB_API void * lexbor_free(void *dst)
Definition memory.c:33
LXB_API void * lexbor_calloc(size_t num, size_t size)
Definition memory.c:27
void ** list
Definition array.h:18
lxb_dom_document_t * document
Definition collection.h:22
lexbor_array_t array
Definition collection.h:21
unsigned int lxb_status_t
Definition types.h:28
value