An array object.
More...
|
#define | PW_ARRAY_INIT(extend) (struct pw_array) { NULL, 0, 0, extend } |
|
#define | pw_array_get_len_s(a, s) ((a)->size / (s)) |
|
#define | pw_array_get_unchecked_s(a, idx, s, t) SPA_PTROFF((a)->data,(idx)*(s),t) |
|
#define | pw_array_check_index_s(a, idx, s) ((idx) < pw_array_get_len_s(a,s)) |
|
#define | pw_array_get_len(a, t) pw_array_get_len_s(a,sizeof(t)) |
| Get the number of items of type t in array. More...
|
|
#define | pw_array_get_unchecked(a, idx, t) pw_array_get_unchecked_s(a,idx,sizeof(t),t) |
| Get the item with index idx and type t from array. More...
|
|
#define | pw_array_check_index(a, idx, t) pw_array_check_index_s(a,idx,sizeof(t)) |
| Check if an item with index idx and type t exist in array. More...
|
|
#define | pw_array_first(a) ((a)->data) |
|
#define | pw_array_end(a) SPA_PTROFF((a)->data, (a)->size, void) |
|
#define | pw_array_check(a, p) (SPA_PTROFF(p,sizeof(*p),void) <= pw_array_end(a)) |
|
#define | pw_array_for_each(pos, array) |
|
#define | pw_array_consume(pos, array) |
|
#define | pw_array_remove(a, p) |
|
#define | pw_array_add_ptr(a, p) *((void**) pw_array_add(a, sizeof(void*))) = (p) |
| Add a pointer to array. More...
|
|
An array object.
The array is a dynamically resizable data structure that can hold items of the same size.
◆ PW_ARRAY_INIT
#define PW_ARRAY_INIT |
( |
|
extend | ) |
(struct pw_array) { NULL, 0, 0, extend } |
◆ pw_array_get_len_s
#define pw_array_get_len_s |
( |
|
a, |
|
|
|
s |
|
) |
| ((a)->size / (s)) |
◆ pw_array_get_unchecked_s
#define pw_array_get_unchecked_s |
( |
|
a, |
|
|
|
idx, |
|
|
|
s, |
|
|
|
t |
|
) |
| SPA_PTROFF((a)->data,(idx)*(s),t) |
◆ pw_array_check_index_s
◆ pw_array_get_len
Get the number of items of type t in array.
◆ pw_array_get_unchecked
Get the item with index idx and type t from array.
◆ pw_array_check_index
Check if an item with index idx and type t exist in array.
◆ pw_array_first
#define pw_array_first |
( |
|
a | ) |
((a)->data) |
◆ pw_array_end
#define pw_array_end |
( |
|
a | ) |
SPA_PTROFF((a)->data, (a)->size, void) |
◆ pw_array_check
◆ pw_array_for_each
#define pw_array_for_each |
( |
|
pos, |
|
|
|
array |
|
) |
| |
◆ pw_array_consume
#define pw_array_consume |
( |
|
pos, |
|
|
|
array |
|
) |
| |
◆ pw_array_remove
#define pw_array_remove |
( |
|
a, |
|
|
|
p |
|
) |
| |
◆ pw_array_add_ptr
#define pw_array_add_ptr |
( |
|
a, |
|
|
|
p |
|
) |
| *((void**) pw_array_add(a, sizeof(void*))) = (p) |
◆ pw_array_init()
static void pw_array_init |
( |
struct pw_array * |
arr, |
|
|
size_t |
extend |
|
) |
| |
|
inlinestatic |
Initialize the array with given extend.
◆ pw_array_clear()
static void pw_array_clear |
( |
struct pw_array * |
arr | ) |
|
|
inlinestatic |
◆ pw_array_reset()
static void pw_array_reset |
( |
struct pw_array * |
arr | ) |
|
|
inlinestatic |
◆ pw_array_ensure_size()
static int pw_array_ensure_size |
( |
struct pw_array * |
arr, |
|
|
size_t |
size |
|
) |
| |
|
inlinestatic |
Make sure size bytes can be added to the array.
◆ pw_array_add()
static void* pw_array_add |
( |
struct pw_array * |
arr, |
|
|
size_t |
size |
|
) |
| |
|
inlinestatic |
Add ref size bytes to arr.
A pointer to memory that can hold at least size bytes is returned
◆ pw_array_add_fixed()
static void* pw_array_add_fixed |
( |
struct pw_array * |
arr, |
|
|
size_t |
size |
|
) |
| |
|
inlinestatic |
Add ref size bytes to arr.
When there is not enough memory to hold size bytes, NULL is returned