Browse Source

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>
David Gibson 10 years ago
parent
commit
918a733fc2
2 changed files with 4 additions and 10 deletions
  1. 1 1
      ccan/asort/_info
  2. 3 9
      ccan/asort/asort.h

+ 1 - 1
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) {

+ 3 - 9
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 */