summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/array.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/array.c b/src/array.c
index cbeb256..8803c54 100644
--- a/src/array.c
+++ b/src/array.c
@@ -1,3 +1,7 @@
+#if !defined AL_ARRAY_MALLOC || !defined AL_ARRAY_REALLOC || !defined AL_ARRAY_FREE
+#error "define all of AL_ARRAY_MALLOC, AL_ARRAY_REALLOC, and AL_ARRAY_FREE before including array.c"
+#endif
+
#include "../include/al/lib.h"
#include "../include/al/array_sort.h"
@@ -70,8 +74,11 @@
} \
} while (0)
-#define al_array_sort(arr, type, cmp) \
- AL_INSERSION_SORT((arr).data, type, (arr).size, cmp)
+#if AL_USE_STDLIB
+#define al_array_sort(arr, type, cmp) AL_STDLIB_QSORT((arr).data, type, (arr).size, cmp)
+#else
+#define al_array_sort(arr, type, cmp) AL_INSERSION_SORT((arr).data, type, (arr).size, cmp)
+#endif
#define al_array_free(arr) \
if ((arr).alloc) AL_ARRAY_FREE((arr).data)