talloc: allow replacement allocator
[ccan] / ccan / asearch / asearch.h
index 2c28ab1c1d89d5f6956f7a0e417f1ca1e15be364..84625d986d6adef3848dbcdcc71dfa3bfe826afb 100644 (file)
@@ -3,7 +3,7 @@
 #include <stdlib.h>
 #include <ccan/typesafe_cb/typesafe_cb.h>
 
-/*
+/**
  * asearch - search an array of elements
  * @key: pointer to item being searched for
  * @base: pointer to data to sort
 #if HAVE_TYPEOF
 #define asearch(key, base, num, cmp)                                   \
        ((__typeof__(*(base))*)(bsearch((key), (base), (num), sizeof(*(base)), \
-            cast_if_type((cmp),                                        \
-                         int (*)(const __typeof__(*(key)) *,           \
-                                 const __typeof__(*(base)) *),         \
-                         int (*)(const void *, const void *)))))
+               cast_if_type(int (*)(const void *, const void *),       \
+                            (cmp), &*(cmp),                            \
+                            int (*)(const __typeof__(*(key)) *,        \
+                                    const __typeof__(*(base)) *)))))
 #else
 #define asearch(key, base, num, cmp)                           \
        (bsearch((key), (base), (num), sizeof(*(base)),         \