diff options
Diffstat (limited to 'deps/jemalloc/src/bitmap.c')
-rw-r--r-- | deps/jemalloc/src/bitmap.c | 59 |
1 files changed, 13 insertions, 46 deletions
diff --git a/deps/jemalloc/src/bitmap.c b/deps/jemalloc/src/bitmap.c index ac0f3b381..c733372b4 100644 --- a/deps/jemalloc/src/bitmap.c +++ b/deps/jemalloc/src/bitmap.c @@ -3,8 +3,6 @@ /******************************************************************************/ -#ifdef USE_TREE - void bitmap_info_init(bitmap_info_t *binfo, size_t nbits) { @@ -34,11 +32,20 @@ bitmap_info_init(bitmap_info_t *binfo, size_t nbits) binfo->nbits = nbits; } -static size_t +size_t bitmap_info_ngroups(const bitmap_info_t *binfo) { - return (binfo->levels[binfo->nlevels].group_offset); + return (binfo->levels[binfo->nlevels].group_offset << LG_SIZEOF_BITMAP); +} + +size_t +bitmap_size(size_t nbits) +{ + bitmap_info_t binfo; + + bitmap_info_init(&binfo, nbits); + return (bitmap_info_ngroups(&binfo)); } void @@ -54,7 +61,8 @@ bitmap_init(bitmap_t *bitmap, const bitmap_info_t *binfo) * correspond to the first logical bit in the group, so extra bits * are the most significant bits of the last group. */ - memset(bitmap, 0xffU, bitmap_size(binfo)); + memset(bitmap, 0xffU, binfo->levels[binfo->nlevels].group_offset << + LG_SIZEOF_BITMAP); extra = (BITMAP_GROUP_NBITS - (binfo->nbits & BITMAP_GROUP_NBITS_MASK)) & BITMAP_GROUP_NBITS_MASK; if (extra != 0) @@ -68,44 +76,3 @@ bitmap_init(bitmap_t *bitmap, const bitmap_info_t *binfo) bitmap[binfo->levels[i+1].group_offset - 1] >>= extra; } } - -#else /* USE_TREE */ - -void -bitmap_info_init(bitmap_info_t *binfo, size_t nbits) -{ - - assert(nbits > 0); - assert(nbits <= (ZU(1) << LG_BITMAP_MAXBITS)); - - binfo->ngroups = BITMAP_BITS2GROUPS(nbits); - binfo->nbits = nbits; -} - -static size_t -bitmap_info_ngroups(const bitmap_info_t *binfo) -{ - - return (binfo->ngroups); -} - -void -bitmap_init(bitmap_t *bitmap, const bitmap_info_t *binfo) -{ - size_t extra; - - memset(bitmap, 0xffU, bitmap_size(binfo)); - extra = (BITMAP_GROUP_NBITS - (binfo->nbits & BITMAP_GROUP_NBITS_MASK)) - & BITMAP_GROUP_NBITS_MASK; - if (extra != 0) - bitmap[binfo->ngroups - 1] >>= extra; -} - -#endif /* USE_TREE */ - -size_t -bitmap_size(const bitmap_info_t *binfo) -{ - - return (bitmap_info_ngroups(binfo) << LG_SIZEOF_BITMAP); -} |