tap: don't _exit on success
[ccan] / ccan / hashtable / hashtable.h
index 155ad3fc8dc98c928b3e41deefa2215bf6abc841..cd878952bd4eb08e5b673b7783d468b85182cd6d 100644 (file)
@@ -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);