X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fhashtable%2Fhashtable.h;h=cd878952bd4eb08e5b673b7783d468b85182cd6d;hp=155ad3fc8dc98c928b3e41deefa2215bf6abc841;hb=d707abbb2ff707dd34aa77c9028f23f2266f8d5f;hpb=b1c867121f379d76dc7fb7d99bae77e2b7d99841 diff --git a/ccan/hashtable/hashtable.h b/ccan/hashtable/hashtable.h index 155ad3fc..cd878952 100644 --- a/ccan/hashtable/hashtable.h +++ b/ccan/hashtable/hashtable.h @@ -73,17 +73,18 @@ bool hashtable_del(struct hashtable *ht, unsigned long hash, const void *p); */ #define hashtable_traverse(ht, type, cb, cbarg) \ _hashtable_traverse(ht, cast_if_type(bool (*)(void *, void *), \ - cast_if_any(bool (*)(void *, \ - void *), (cb), \ - bool (*)(const type *, \ - const typeof(*cbarg) *), \ - bool (*)(type *, \ - const typeof(*cbarg) *), \ - bool (*)(const type *, \ - typeof(*cbarg) *)), \ - bool (*)(type *, \ - typeof(*cbarg) *)), \ - cbarg) + cast_if_any(bool (*)(void *, \ + void *), \ + (cb), &*(cb), \ + bool (*)(const type *, \ + const typeof(*cbarg) *), \ + bool (*)(type *, \ + const typeof(*cbarg) *), \ + bool (*)(const type *, \ + typeof(*cbarg) *)), \ + &*(cb), \ + bool (*)(type *, typeof(*cbarg) *)), \ + (cbarg)) void _hashtable_traverse(struct hashtable *ht, bool (*cb)(void *p, void *cbarg), void *cbarg);