Bug 1161346 - Add missing capacity for unboxed arrays, r=jandem.
authorBrian Hackett <bhackett1024@gmail.com>
Mon, 11 May 2015 08:35:27 -0600
changeset 243373 5b68de5f1dc9af107c2afd6557c5bee1b5e60142
parent 243372 4287533203fb5c458e8b6281013a97dd1d421295
child 243374 49678aa590e25ac6b76e365adf81041ca790d85d
push id28738
push usercbook@mozilla.com
push dateTue, 12 May 2015 14:11:31 +0000
treeherderautoland@bedce1b405a3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem
bugs1161346
milestone40.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1161346 - Add missing capacity for unboxed arrays, r=jandem.
js/src/vm/UnboxedObject.cpp
--- a/js/src/vm/UnboxedObject.cpp
+++ b/js/src/vm/UnboxedObject.cpp
@@ -1226,48 +1226,48 @@ UnboxedArrayObject::objectMovedDuringMin
 // Possible capacities for unboxed arrays. Some of these capacities might seem
 // a little weird, but were chosen to allow the inline data of objects of each
 // size to be fully utilized for arrays of the various types on both 32 bit and
 // 64 bit platforms.
 /* static */ const uint32_t
 UnboxedArrayObject::CapacityArray[] = {
     UINT32_MAX, // For CapacityMatchesLengthIndex.
     0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 16, 17, 18, 20, 24, 26, 32, 34, 36, 48, 52, 64, 68,
-    128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288,
+    72, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288,
     1048576, 2097152, 3145728, 4194304, 5242880, 6291456, 7340032, 8388608, 9437184, 11534336,
     13631488, 15728640, 17825792, 20971520, 24117248, 27262976, 31457280, 35651584, 40894464,
     46137344, 52428800, 59768832, MaximumCapacity
 };
 
 static const uint32_t
 Pow2CapacityIndexes[] = {
     1,  // 1
     2,  // 2
     4,  // 4
     8,  // 8
     13, // 16
     19, // 32
     24, // 64
-    26, // 128
-    27, // 256
-    28, // 512
-    29, // 1024
-    30, // 2048
-    31, // 4096
-    32, // 8192
-    33, // 16384
-    34, // 32768
-    35, // 65536
-    36, // 131072
-    37, // 262144
-    38, // 524288
-    39  // 1048576
+    27, // 128
+    28, // 256
+    29, // 512
+    30, // 1024
+    31, // 2048
+    32, // 4096
+    33, // 8192
+    34, // 16384
+    35, // 32768
+    36, // 65536
+    37, // 131072
+    38, // 262144
+    39, // 524288
+    40  // 1048576
 };
 
-static const uint32_t MebiCapacityIndex = 39;
+static const uint32_t MebiCapacityIndex = 40;
 
 /* static */ uint32_t
 UnboxedArrayObject::chooseCapacityIndex(uint32_t capacity, uint32_t length)
 {
     // Note: the structure and behavior of this method follow along with
     // NativeObject::goodAllocated. Changes to the allocation strategy in one
     // should generally be matched by the other.