rculfhash: Use caa_container_of_check_null in cds_lfht_entry
[urcu.git] / include / urcu / rculfhash.h
index c18cf5290763dde5f86efe101adf0c1af72f8857..56c1b13d31eea723fa46808a2295f45465393bab 100644 (file)
@@ -534,24 +534,27 @@ void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size);
                cds_lfht_next_duplicate(ht, match, key, iter),          \
                        node = cds_lfht_iter_get_node(iter))
 
+#define cds_lfht_entry(ptr, type, member)                              \
+       caa_container_of_check_null(ptr, type, member)
+
 #define cds_lfht_for_each_entry(ht, iter, pos, member)                 \
        for (cds_lfht_first(ht, iter),                                  \
-                       pos = caa_container_of(cds_lfht_iter_get_node(iter), \
-                                       __typeof__(*(pos)), member);    \
-               cds_lfht_iter_get_node(iter) != NULL;                   \
+                       pos = cds_lfht_entry(cds_lfht_iter_get_node(iter), \
+                               __typeof__(*(pos)), member);            \
+               pos != NULL;                                            \
                cds_lfht_next(ht, iter),                                \
-                       pos = caa_container_of(cds_lfht_iter_get_node(iter), \
-                                       __typeof__(*(pos)), member))
+                       pos = cds_lfht_entry(cds_lfht_iter_get_node(iter), \
+                               __typeof__(*(pos)), member))
 
 #define cds_lfht_for_each_entry_duplicate(ht, hash, match, key,                \
                                iter, pos, member)                      \
        for (cds_lfht_lookup(ht, hash, match, key, iter),               \
-                       pos = caa_container_of(cds_lfht_iter_get_node(iter), \
-                                       __typeof__(*(pos)), member);    \
-               cds_lfht_iter_get_node(iter) != NULL;                   \
+                       pos = cds_lfht_entry(cds_lfht_iter_get_node(iter), \
+                               __typeof__(*(pos)), member);            \
+               pos != NULL;                                            \
                cds_lfht_next_duplicate(ht, match, key, iter),          \
-                       pos = caa_container_of(cds_lfht_iter_get_node(iter), \
-                                       __typeof__(*(pos)), member))
+                       pos = cds_lfht_entry(cds_lfht_iter_get_node(iter), \
+                               __typeof__(*(pos)), member))
 
 #ifdef __cplusplus
 }
This page took 0.023608 seconds and 4 git commands to generate.