Bug 1413096 - Remove unnecessary call to ffs. r?njn
Comparing ffs(x) == ffs(y), when x and y are guaranteed to be powers of
2 (or 0, or 1), is the same as x == y.
--- a/memory/build/mozjemalloc.cpp
+++ b/memory/build/mozjemalloc.cpp
@@ -3675,18 +3675,18 @@ static void*
arena_ralloc(void* aPtr, size_t aSize, size_t aOldSize, arena_t* aArena)
{
void* ret;
size_t copysize;
// Try to avoid moving the allocation.
if (aSize < small_min) {
if (aOldSize < small_min &&
- ffs((int)(RoundUpPow2(aSize) >> (TINY_MIN_2POW + 1))) ==
- ffs((int)(RoundUpPow2(aOldSize) >> (TINY_MIN_2POW + 1)))) {
+ (RoundUpPow2(aSize) >> (TINY_MIN_2POW + 1) ==
+ RoundUpPow2(aOldSize) >> (TINY_MIN_2POW + 1))) {
goto IN_PLACE; // Same size class.
}
} else if (aSize <= small_max) {
if (aOldSize >= small_min && aOldSize <= small_max &&
(QUANTUM_CEILING(aSize) >> QUANTUM_2POW_MIN) ==
(QUANTUM_CEILING(aOldSize) >> QUANTUM_2POW_MIN)) {
goto IN_PLACE; // Same size class.
}