#include "lib.h"
#include "array.h"
+#include <stdlib.h>
+
void *array_idx_modifiable_i(struct array *array, unsigned int idx)
{
size_t pos;
element_size);
}
}
+
+void array_sort_i(struct array *array, int (*cmp)(const void *, const void *))
+{
+ unsigned int count;
+
+ count = array->buffer->used / array->element_size;
+ qsort(buffer_get_modifiable_data(array->buffer, NULL),
+ count, array->element_size, cmp);
+}
#define array_reverse(array) \
array_reverse_i(&(array)->arr)
+void array_sort_i(struct array *array, int (*cmp)(const void *, const void *));
+#ifdef CONTEXT_TYPE_SAFETY
+#define array_sort(array, cmp) \
+ ({(void)(1 ? 0 : cmp(ARRAY_TYPE_CAST_CONST(array)NULL, \
+ ARRAY_TYPE_CAST_CONST(array)NULL)); \
+ array_sort_i(&(array)->arr, \
+ (int (*)(const void *, const void *))cmp); })
+#else
+#define array_sort(array, cmp) \
+ array_sort_i(&(array)->arr, (int (*)(const void *, const void *))cmp)
+#endif
+
#endif