mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-25 14:23:12 +00:00
PRNG: Allow a a range argument of 1.
This is convenient when the range argument itself is generated from some computation whose value we don't know in advance.
This commit is contained in:
committed by
David Goldblatt
parent
bdb60a8053
commit
0513047170
@@ -133,7 +133,9 @@ prng_range_u32(atomic_u32_t *state, uint32_t range, bool atomic) {
|
|||||||
uint32_t ret;
|
uint32_t ret;
|
||||||
unsigned lg_range;
|
unsigned lg_range;
|
||||||
|
|
||||||
assert(range > 1);
|
if (range == 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Compute the ceiling of lg(range). */
|
/* Compute the ceiling of lg(range). */
|
||||||
lg_range = ffs_u32(pow2_ceil_u32(range));
|
lg_range = ffs_u32(pow2_ceil_u32(range));
|
||||||
@@ -151,7 +153,9 @@ prng_range_u64(uint64_t *state, uint64_t range) {
|
|||||||
uint64_t ret;
|
uint64_t ret;
|
||||||
unsigned lg_range;
|
unsigned lg_range;
|
||||||
|
|
||||||
assert(range > 1);
|
if (range == 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Compute the ceiling of lg(range). */
|
/* Compute the ceiling of lg(range). */
|
||||||
lg_range = ffs_u64(pow2_ceil_u64(range));
|
lg_range = ffs_u64(pow2_ceil_u64(range));
|
||||||
@@ -169,7 +173,9 @@ prng_range_zu(atomic_zu_t *state, size_t range, bool atomic) {
|
|||||||
size_t ret;
|
size_t ret;
|
||||||
unsigned lg_range;
|
unsigned lg_range;
|
||||||
|
|
||||||
assert(range > 1);
|
if (range == 1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Compute the ceiling of lg(range). */
|
/* Compute the ceiling of lg(range). */
|
||||||
lg_range = ffs_u64(pow2_ceil_u64(range));
|
lg_range = ffs_u64(pow2_ceil_u64(range));
|
||||||
|
|||||||
Reference in New Issue
Block a user