Fix nfill = 0 bug when ncached_max is 1
This commit is contained in:
parent
6fb3b6a8e4
commit
d88fa71bbd
@ -1023,6 +1023,7 @@ arena_cache_bin_fill_small(tsdn_t *tsdn, arena_t *arena,
|
|||||||
cache_bin_t *cache_bin, cache_bin_info_t *cache_bin_info, szind_t binind,
|
cache_bin_t *cache_bin, cache_bin_info_t *cache_bin_info, szind_t binind,
|
||||||
const unsigned nfill) {
|
const unsigned nfill) {
|
||||||
assert(cache_bin_ncached_get_local(cache_bin, cache_bin_info) == 0);
|
assert(cache_bin_ncached_get_local(cache_bin, cache_bin_info) == 0);
|
||||||
|
assert(nfill != 0);
|
||||||
|
|
||||||
const bin_info_t *bin_info = &bin_infos[binind];
|
const bin_info_t *bin_info = &bin_infos[binind];
|
||||||
|
|
||||||
|
@ -257,6 +257,9 @@ tcache_alloc_small_hard(tsdn_t *tsdn, arena_t *arena,
|
|||||||
assert(!tcache_bin_disabled(binind, cache_bin, tcache_slow));
|
assert(!tcache_bin_disabled(binind, cache_bin, tcache_slow));
|
||||||
unsigned nfill = cache_bin_info_ncached_max_get(cache_bin,
|
unsigned nfill = cache_bin_info_ncached_max_get(cache_bin,
|
||||||
&cache_bin->bin_info) >> tcache_slow->lg_fill_div[binind];
|
&cache_bin->bin_info) >> tcache_slow->lg_fill_div[binind];
|
||||||
|
if (nfill == 0) {
|
||||||
|
nfill = 1;
|
||||||
|
}
|
||||||
arena_cache_bin_fill_small(tsdn, arena, cache_bin,
|
arena_cache_bin_fill_small(tsdn, arena, cache_bin,
|
||||||
&cache_bin->bin_info, binind, nfill);
|
&cache_bin->bin_info, binind, nfill);
|
||||||
tcache_slow->bin_refilled[binind] = true;
|
tcache_slow->bin_refilled[binind] = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user