diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2015-06-18 19:29:37 +1000 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2015-06-18 19:29:37 +1000 |
commit | 918a733fc27172f56d66a28bc24bd897ac1c48f6 (patch) | |
tree | 424ca4ca151b1d5590cad7416ea374d42d934be9 | |
parent | 37825438b65879dad1a343b45bb5ce9fc37ba8e7 (diff) |
asort: Use order module definitions
The asort routine takes a user-supplied comparison function. Use the
definitions from the new order module to slightly simplify the declaration
and handling of this function.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | ccan/asort/_info | 2 | ||||
-rw-r--r-- | ccan/asort/asort.h | 12 |
2 files changed, 4 insertions, 10 deletions
diff --git a/ccan/asort/_info b/ccan/asort/_info index 57523cc9..28e2faeb 100644 --- a/ccan/asort/_info +++ b/ccan/asort/_info @@ -58,7 +58,7 @@ int main(int argc, char *argv[]) return 1; if (strcmp(argv[1], "depends") == 0) { - printf("ccan/typesafe_cb\n"); + printf("ccan/order\n"); return 0; } if (strcmp(argv[1], "testdepends") == 0) { diff --git a/ccan/asort/asort.h b/ccan/asort/asort.h index 3506c2ae..43b0f89c 100644 --- a/ccan/asort/asort.h +++ b/ccan/asort/asort.h @@ -2,7 +2,7 @@ #ifndef CCAN_ASORT_H #define CCAN_ASORT_H #include "config.h" -#include <ccan/typesafe_cb/typesafe_cb.h> +#include <ccan/order/order.h> #include <stdlib.h> /** @@ -20,19 +20,13 @@ */ #define asort(base, num, cmp, ctx) \ _asort((base), (num), sizeof(*(base)), \ - typesafe_cb_cast(int (*)(const void *, const void *, void *), \ - int (*)(const __typeof__(*(base)) *, \ - const __typeof__(*(base)) *, \ - __typeof__(ctx)), \ - (cmp)), \ - (ctx)) + total_order_cast((cmp), *(base), (ctx)), (ctx)) #if HAVE_QSORT_R_PRIVATE_LAST #define _asort(b, n, s, cmp, ctx) qsort_r(b, n, s, cmp, ctx) #else void _asort(void *base, size_t nmemb, size_t size, - int(*compar)(const void *, const void *, void *), - void *ctx); + _total_order_cb compar, void *ctx); #endif #endif /* CCAN_ASORT_H */ |