2007-11-07 Mark Rowe <mrowe@apple.com>
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Nov 2007 17:54:36 +0000 (17:54 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Nov 2007 17:54:36 +0000 (17:54 +0000)
        Reviewed by Eric.

        Fix up initialization after being mangled in r27572, and remove the
        ternary expression as extraCost will always be zero for the numeric
        heap.

        * kjs/collector.cpp:
        (KJS::Collector::heapAllocate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27574 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/collector.cpp

index 26b31475a05b933b3c5ecbf21e701d3abbba477a..52560b283d0c52995f237262615577dc40dd8421 100644 (file)
@@ -1,3 +1,14 @@
+2007-11-07  Mark Rowe  <mrowe@apple.com>
+
+        Reviewed by Eric.
+
+        Fix up initialization after being mangled in r27572, and remove the
+        ternary expression as extraCost will always be zero for the numeric
+        heap.
+
+        * kjs/collector.cpp:
+        (KJS::Collector::heapAllocate):
+
 2007-11-07  Mark Rowe  <mrowe@apple.com>
 
         Gtk build fix.
index bdb3bc8b0837bfa479c6d740c58ec2b5f2fb30ad..7adfb8256a3aecf6ee1313c29ad2c806bf7d2934 100644 (file)
@@ -203,6 +203,7 @@ template <Collector::HeapType heapType> void* Collector::heapAllocate(size_t s)
   UNUSED_PARAM(s); // s is now only used for the above assert
 
   ASSERT(heap.operationInProgress == NoOperation);
+  ASSERT(heapType == PrimaryHeap || heap.extraCost == 0);
   // FIXME: If another global variable access here doesn't hurt performance
   // too much, we could abort() in NDEBUG builds, which could help ensure we
   // don't spend any time debugging cases where we allocate inside an object's
@@ -217,7 +218,7 @@ template <Collector::HeapType heapType> void* Collector::heapAllocate(size_t s)
   if (heapType == PrimaryHeap && heap.extraCost > ALLOCATIONS_PER_COLLECTION) {
       size_t numLiveObjectsAtLastCollect = heap.numLiveObjectsAtLastCollect;
       size_t numNewObjects = numLiveObjects - numLiveObjectsAtLastCollect;
-      const size_t newCost = heapType == numNewObjects + heap.extraCost;
+      const size_t newCost = numNewObjects + heap.extraCost;
       if (newCost >= ALLOCATIONS_PER_COLLECTION && newCost >= numLiveObjectsAtLastCollect)
           goto collect;
   }
@@ -248,8 +249,8 @@ scan:
 collect:
     size_t numLiveObjectsAtLastCollect = heap.numLiveObjectsAtLastCollect;
     size_t numNewObjects = numLiveObjects - numLiveObjectsAtLastCollect;
-    const size_t newCost = heapType == PrimaryHeap ? numNewObjects + heap.extraCost : numNewObjects;
-      
+    const size_t newCost = numNewObjects + heap.extraCost;
+
     if (newCost >= ALLOCATIONS_PER_COLLECTION && newCost >= numLiveObjectsAtLastCollect) {
 #ifndef NDEBUG
       heap.operationInProgress = NoOperation;