[ccan] [PATCH 3/4] asort: Use order_functions module definitions

David Gibson david at gibson.dropbear.id.au
Mon Jun 1 20:21:07 AEST 2015


The asort routine takes a user-supplied comparison function.  Use the
definitions from the new order_functions module to slightly simplify the
declaration and handling of this function.

Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
---
 ccan/asort/_info   |  2 +-
 ccan/asort/asort.h | 12 +++---------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/ccan/asort/_info b/ccan/asort/_info
index 57523cc..972438e 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_functions\n");
 		return 0;
 	}
 	if (strcmp(argv[1], "testdepends") == 0) {
diff --git a/ccan/asort/asort.h b/ccan/asort/asort.h
index 3506c2a..ab89152 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_functions/order_functions.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 */
-- 
2.4.2



More information about the ccan mailing list