Lines Matching full:array

50     heim_array_t array = ptr;  in array_dealloc()  local
52 for (n = 0; n < array->len; n++) in array_dealloc()
53 heim_release(array->val[n]); in array_dealloc()
54 free(array->val); in array_dealloc()
68 * Allocate an array
70 * @return A new allocated array, free with heim_release()
76 heim_array_t array; in heim_array_create() local
78 array = _heim_alloc_object(&array_object, sizeof(*array)); in heim_array_create()
79 if (array == NULL) in heim_array_create()
82 array->val = NULL; in heim_array_create()
83 array->len = 0; in heim_array_create()
85 return array; in heim_array_create()
101 * Append object to array
103 * @param array array to add too
110 heim_array_append_value(heim_array_t array, heim_object_t object) in heim_array_append_value() argument
114 ptr = realloc(array->val, (array->len + 1) * sizeof(array->val[0])); in heim_array_append_value()
117 array->val = ptr; in heim_array_append_value()
118 array->val[array->len++] = heim_retain(object); in heim_array_append_value()
124 * Iterate over all objects in array
126 * @param array array to iterate over
132 heim_array_iterate_f(heim_array_t array, heim_array_iterator_f_t fn, void *ctx) in heim_array_iterate_f() argument
135 for (n = 0; n < array->len; n++) in heim_array_iterate_f()
136 fn(array->val[n], ctx); in heim_array_iterate_f()
141 * Iterate over all objects in array
143 * @param array array to iterate over
148 heim_array_iterate(heim_array_t array, void (^fn)(heim_object_t))
151 for (n = 0; n < array->len; n++)
152 fn(array->val[n]);
157 * Get length of array
159 * @param array array to get length of
161 * @return length of array
165 heim_array_get_length(heim_array_t array) in heim_array_get_length() argument
167 return array->len; in heim_array_get_length()
171 * Copy value of array
173 * @param array array copy object from
181 heim_array_copy_value(heim_array_t array, size_t idx) in heim_array_copy_value() argument
183 if (idx >= array->len) in heim_array_copy_value()
185 return heim_retain(array->val[idx]); in heim_array_copy_value()
191 * @param array the array to modify
196 heim_array_delete_value(heim_array_t array, size_t idx) in heim_array_delete_value() argument
199 if (idx >= array->len) in heim_array_delete_value()
201 obj = array->val[idx]; in heim_array_delete_value()
203 array->len--; in heim_array_delete_value()
205 if (idx < array->len) in heim_array_delete_value()
206 memmove(&array->val[idx], &array->val[idx + 1], in heim_array_delete_value()
207 (array->len - idx) * sizeof(array->val[0])); in heim_array_delete_value()
216 * @param array the array to modify
221 heim_array_filter(heim_array_t array, int (^block)(heim_object_t))
225 while (n < array->len) {
226 if (block(array->val[n])) {
227 heim_array_delete_value(array, n);