Bug 1413096 - Remove unnecessary call to ffs. r?njn draft
authorMike Hommey <mh+mozilla@glandium.org>
Mon, 30 Oct 2017 17:57:55 +0900
changeset 689816 9660a148afc288c819cc25bbe89995947c80c55d
parent 689815 ab5b0c9e997593406359acb42b2de9d4b27c6867
child 689817 479baef24e221af0b4008b947319137d380a4b1a
push id87110
push userbmo:mh+mozilla@glandium.org
push dateWed, 01 Nov 2017 00:18:09 +0000
reviewersnjn
bugs1413096
milestone58.0a1
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.
memory/build/mozjemalloc.cpp
--- 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.
     }