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 689864 9d3c6e404d6cfd015b9f892bd5138114018b7ab0
parent 689863 ed248bca4be8a2015d6adf8450b542791f523da7
child 689865 248bc3ec5135a7be58b7b4140abc6987bf843253
push id87123
push userbmo:mh+mozilla@glandium.org
push dateWed, 01 Nov 2017 02:12:10 +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.
     }