Lines Matching defs:array

50     heim_array_t array = ptr;
52 for (n = 0; n < array->len; n++)
53 heim_release(array->val[n]);
54 free(array->val);
68 * Allocate an array
70 * @return A new allocated array, free with heim_release()
76 heim_array_t array;
78 array = _heim_alloc_object(&array_object, sizeof(*array));
79 if (array == NULL)
82 array->val = NULL;
83 array->len = 0;
85 return array;
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)
114 ptr = realloc(array->val, (array->len + 1) * sizeof(array->val[0]));
117 array->val = ptr;
118 array->val[array->len++] = heim_retain(object);
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)
135 for (n = 0; n < array->len; n++)
136 fn(array->val[n], ctx);
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)
167 return array->len;
171 * Copy value of array
173 * @param array array copy object from
181 heim_array_copy_value(heim_array_t array, size_t idx)
183 if (idx >= array->len)
185 return heim_retain(array->val[idx]);
191 * @param array the array to modify
196 heim_array_delete_value(heim_array_t array, size_t idx)
199 if (idx >= array->len)
201 obj = array->val[idx];
203 array->len--;
205 if (idx < array->len)
206 memmove(&array->val[idx], &array->val[idx + 1],
207 (array->len - idx) * sizeof(array->val[0]));
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);