• Home
  • Raw
  • Download

Lines Matching refs:array

39     pa_dynarray *array;  in pa_dynarray_new()  local
41 array = pa_xnew0(pa_dynarray, 1); in pa_dynarray_new()
42 array->free_cb = free_cb; in pa_dynarray_new()
44 return array; in pa_dynarray_new()
47 void pa_dynarray_free(pa_dynarray *array) { in pa_dynarray_free() argument
49 pa_assert(array); in pa_dynarray_free()
51 if (array->free_cb) in pa_dynarray_free()
52 for (i = 0; i < array->n_entries; i++) in pa_dynarray_free()
53 array->free_cb(array->data[i]); in pa_dynarray_free()
55 pa_xfree(array->data); in pa_dynarray_free()
56 pa_xfree(array); in pa_dynarray_free()
59 void pa_dynarray_append(pa_dynarray *array, void *p) { in pa_dynarray_append() argument
60 pa_assert(array); in pa_dynarray_append()
63 if (array->n_entries == array->n_allocated) { in pa_dynarray_append()
64 unsigned n = PA_MAX(array->n_allocated * 2, 25U); in pa_dynarray_append()
66 array->data = pa_xrealloc(array->data, sizeof(void *) * n); in pa_dynarray_append()
67 array->n_allocated = n; in pa_dynarray_append()
70 array->data[array->n_entries++] = p; in pa_dynarray_append()
73 void *pa_dynarray_get(pa_dynarray *array, unsigned i) { in pa_dynarray_get() argument
74 pa_assert(array); in pa_dynarray_get()
76 if (i >= array->n_entries) in pa_dynarray_get()
79 return array->data[i]; in pa_dynarray_get()
82 void *pa_dynarray_last(pa_dynarray *array) { in pa_dynarray_last() argument
83 pa_assert(array); in pa_dynarray_last()
85 if (array->n_entries == 0) in pa_dynarray_last()
88 return array->data[array->n_entries - 1]; in pa_dynarray_last()
91 int pa_dynarray_remove_by_index(pa_dynarray *array, unsigned i) { in pa_dynarray_remove_by_index() argument
94 pa_assert(array); in pa_dynarray_remove_by_index()
96 if (i >= array->n_entries) in pa_dynarray_remove_by_index()
99 entry = array->data[i]; in pa_dynarray_remove_by_index()
100 array->data[i] = array->data[array->n_entries - 1]; in pa_dynarray_remove_by_index()
101 array->n_entries--; in pa_dynarray_remove_by_index()
103 if (array->free_cb) in pa_dynarray_remove_by_index()
104 array->free_cb(entry); in pa_dynarray_remove_by_index()
109 int pa_dynarray_remove_by_data(pa_dynarray *array, void *p) { in pa_dynarray_remove_by_data() argument
112 pa_assert(array); in pa_dynarray_remove_by_data()
117 i = array->n_entries; in pa_dynarray_remove_by_data()
120 if (array->data[i] == p) { in pa_dynarray_remove_by_data()
121 pa_dynarray_remove_by_index(array, i); in pa_dynarray_remove_by_data()
129 void *pa_dynarray_steal_last(pa_dynarray *array) { in pa_dynarray_steal_last() argument
130 pa_assert(array); in pa_dynarray_steal_last()
132 if (array->n_entries > 0) in pa_dynarray_steal_last()
133 return array->data[--array->n_entries]; in pa_dynarray_steal_last()
138 unsigned pa_dynarray_size(pa_dynarray *array) { in pa_dynarray_size() argument
139 pa_assert(array); in pa_dynarray_size()
141 return array->n_entries; in pa_dynarray_size()
144 int pa_dynarray_insert_by_index(pa_dynarray *array, void *p, unsigned i) { in pa_dynarray_insert_by_index() argument
148 pa_assert(array); in pa_dynarray_insert_by_index()
150 if (i > array->n_entries) in pa_dynarray_insert_by_index()
153 if (i == array->n_entries) in pa_dynarray_insert_by_index()
154 pa_dynarray_append(array, p); in pa_dynarray_insert_by_index()
156 entry = pa_dynarray_last(array); in pa_dynarray_insert_by_index()
157 pa_dynarray_append(array, entry); in pa_dynarray_insert_by_index()
158 j = array->n_entries - 2; in pa_dynarray_insert_by_index()
160 array->data[j] = array->data[j-1]; in pa_dynarray_insert_by_index()
161 array->data[i] = p; in pa_dynarray_insert_by_index()