X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fasort%2Fasort.h;h=b7178c5b1d50c1d8f08f8c63ebe8953b042fd42c;hp=eaaa5b19f418a96a46a951570ad0a9bbf00ed3b0;hb=b0fa019adb998c20a8740f5696b61ae87d2a77a6;hpb=376edd78d31c1c542e19ae896006cd17ccb459f0 diff --git a/ccan/asort/asort.h b/ccan/asort/asort.h index eaaa5b19..b7178c5b 100644 --- a/ccan/asort/asort.h +++ b/ccan/asort/asort.h @@ -1,5 +1,6 @@ #ifndef CCAN_ASORT_H #define CCAN_ASORT_H +#include "config.h" #include #include @@ -18,14 +19,19 @@ */ #define asort(base, num, cmp, ctx) \ _asort((base), (num), sizeof(*(base)), \ - cast_if_type(int (*)(const void *, const void *, void *), \ - (cmp), &*(cmp), \ - int (*)(const __typeof__(*(base)) *, \ - const __typeof__(*(base)) *, \ - __typeof__(ctx))), (ctx)) + typesafe_cb_cast(int (*)(const void *, const void *, void *), \ + int (*)(const __typeof__(*(base)) *, \ + const __typeof__(*(base)) *, \ + __typeof__(ctx)), \ + (cmp)), \ + (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); +#endif #endif /* CCAN_ASORT_H */