Fix undefined NULL pointer arithmetic
[urcu.git] / rculfhash-mm-order.c
index 9c0c70e421244cb47c07a4d2a545b0e1f8478718..20f3edd8ce37cf9a5abe88e18264ec1102759b53 100644 (file)
@@ -63,11 +63,11 @@ struct cds_lfht_node *bucket_at(struct cds_lfht *ht, unsigned long index)
                return &ht->tbl_order[0][index];
        }
        /*
-        * equivalent to get_count_order_ulong(index + 1), but optimizes
-        * away the non-existing 0 special-case for
-        * get_count_order_ulong.
+        * equivalent to cds_lfht_get_count_order_ulong(index + 1), but
+        * optimizes away the non-existing 0 special-case for
+        * cds_lfht_get_count_order_ulong.
         */
-       order = fls_ulong(index);
+       order = cds_lfht_fls_ulong(index);
        dbg_printf("bucket index %lu order %lu aridx %lu\n",
                   index, order, index & ((1UL << (order - 1)) - 1));
        return &ht->tbl_order[order][index & ((1UL << (order - 1)) - 1)];
@@ -77,19 +77,9 @@ static
 struct cds_lfht *alloc_cds_lfht(unsigned long min_nr_alloc_buckets,
                unsigned long max_nr_buckets)
 {
-       struct cds_lfht *ht;
-
-       ht = calloc(1, sizeof(struct cds_lfht));
-       assert(ht);
-
-       ht->bucket_at = bucket_at;
-       ht->mm = &cds_lfht_mm_order;
-       ht->min_nr_alloc_buckets = min_nr_alloc_buckets;
-       ht->min_alloc_buckets_order =
-               get_count_order_ulong(min_nr_alloc_buckets);
-       ht->max_nr_buckets = max_nr_buckets;
-
-       return ht;
+       return __default_alloc_cds_lfht(
+                       &cds_lfht_mm_order, sizeof(struct cds_lfht),
+                       min_nr_alloc_buckets, max_nr_buckets);
 }
 
 const struct cds_lfht_mm_type cds_lfht_mm_order = {
This page took 0.029967 seconds and 4 git commands to generate.