X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=rculfhash-mm-chunk.c;fp=rculfhash-mm-chunk.c;h=a7a9b765b4c2c734389b869fc8c4f0ceb7e46281;hp=38dde3a2b8759f6b2e672963eafc1f88eb84592d;hb=1228af1ceae83f0886de7fb593b8e57e1a74e1db;hpb=b69e8b3f8cec89492c706cb6a3c0e1f85dccfcfd diff --git a/rculfhash-mm-chunk.c b/rculfhash-mm-chunk.c index 38dde3a..a7a9b76 100644 --- a/rculfhash-mm-chunk.c +++ b/rculfhash-mm-chunk.c @@ -75,26 +75,18 @@ static struct cds_lfht *alloc_cds_lfht(unsigned long min_nr_alloc_buckets, unsigned long max_nr_buckets) { - struct cds_lfht *ht; unsigned long nr_chunks, cds_lfht_size; min_nr_alloc_buckets = max(min_nr_alloc_buckets, max_nr_buckets / MAX_CHUNK_TABLE); nr_chunks = max_nr_buckets / min_nr_alloc_buckets; cds_lfht_size = offsetof(struct cds_lfht, tbl_chunk) + - sizeof(ht->tbl_chunk[0]) * nr_chunks; + sizeof(struct cds_lfht_node *) * nr_chunks; cds_lfht_size = max(cds_lfht_size, sizeof(struct cds_lfht)); - ht = calloc(1, cds_lfht_size); - assert(ht); - ht->bucket_at = bucket_at; - ht->mm = &cds_lfht_mm_chunk; - 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_chunk, cds_lfht_size, + min_nr_alloc_buckets, max_nr_buckets); } const struct cds_lfht_mm_type cds_lfht_mm_chunk = {