Title: [165109] trunk/Source/_javascript_Core
Revision
165109
Author
[email protected]
Date
2014-03-05 08:46:23 -0800 (Wed, 05 Mar 2014)

Log Message

Use range-based loops where possible in Heap methods
https://bugs.webkit.org/show_bug.cgi?id=129513

Reviewed by Mark Lam.

Replace old school iterator based loops with the new range-based loop hotness
for a better tomorrow.

* heap/CodeBlockSet.cpp:
(JSC::CodeBlockSet::~CodeBlockSet):
(JSC::CodeBlockSet::clearMarks):
(JSC::CodeBlockSet::deleteUnmarkedAndUnreferenced):
(JSC::CodeBlockSet::traceMarked):
* heap/Heap.cpp:
(JSC::Heap::visitProtectedObjects):
(JSC::Heap::visitTempSortVectors):
(JSC::Heap::clearRememberedSet):
* heap/Heap.h:
(JSC::Heap::forEachProtectedCell):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (165108 => 165109)


--- trunk/Source/_javascript_Core/ChangeLog	2014-03-05 15:48:29 UTC (rev 165108)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-03-05 16:46:23 UTC (rev 165109)
@@ -1,3 +1,25 @@
+2014-03-05  Mark Hahnenberg  <[email protected]>
+
+        Use range-based loops where possible in Heap methods
+        https://bugs.webkit.org/show_bug.cgi?id=129513
+
+        Reviewed by Mark Lam.
+
+        Replace old school iterator based loops with the new range-based loop hotness
+        for a better tomorrow.
+
+        * heap/CodeBlockSet.cpp:
+        (JSC::CodeBlockSet::~CodeBlockSet):
+        (JSC::CodeBlockSet::clearMarks):
+        (JSC::CodeBlockSet::deleteUnmarkedAndUnreferenced):
+        (JSC::CodeBlockSet::traceMarked):
+        * heap/Heap.cpp:
+        (JSC::Heap::visitProtectedObjects):
+        (JSC::Heap::visitTempSortVectors):
+        (JSC::Heap::clearRememberedSet):
+        * heap/Heap.h:
+        (JSC::Heap::forEachProtectedCell):
+
 2014-03-04  Filip Pizlo  <[email protected]>
 
         DFG and FTL should specialize for and support CompareStrictEq over Misc (i.e. boolean, undefined, or null)

Modified: trunk/Source/_javascript_Core/heap/CodeBlockSet.cpp (165108 => 165109)


--- trunk/Source/_javascript_Core/heap/CodeBlockSet.cpp	2014-03-05 15:48:29 UTC (rev 165108)
+++ trunk/Source/_javascript_Core/heap/CodeBlockSet.cpp	2014-03-05 16:46:23 UTC (rev 165109)
@@ -41,10 +41,8 @@
 
 CodeBlockSet::~CodeBlockSet()
 {
-    HashSet<CodeBlock*>::iterator iter = m_set.begin();
-    HashSet<CodeBlock*>::iterator end = m_set.end();
-    for (; iter != end; ++iter)
-        (*iter)->deref();
+    for (CodeBlock* codeBlock : m_set)
+        codeBlock->deref();
 }
 
 void CodeBlockSet::add(PassRefPtr<CodeBlock> codeBlock)
@@ -56,10 +54,7 @@
 
 void CodeBlockSet::clearMarks()
 {
-    HashSet<CodeBlock*>::iterator iter = m_set.begin();
-    HashSet<CodeBlock*>::iterator end = m_set.end();
-    for (; iter != end; ++iter) {
-        CodeBlock* codeBlock = *iter;
+    for (CodeBlock* codeBlock : m_set) {
         codeBlock->m_mayBeExecuting = false;
         codeBlock->m_visitAggregateHasBeenCalled = false;
     }
@@ -75,10 +70,7 @@
     if (verbose)
         dataLog("Fixpointing over unmarked, set size = ", m_set.size(), "...\n");
     for (;;) {
-        HashSet<CodeBlock*>::iterator iter = m_set.begin();
-        HashSet<CodeBlock*>::iterator end = m_set.end();
-        for (; iter != end; ++iter) {
-            CodeBlock* codeBlock = *iter;
+        for (CodeBlock* codeBlock : m_set) {
             if (!codeBlock->hasOneRef())
                 continue;
             if (codeBlock->m_mayBeExecuting)
@@ -90,8 +82,8 @@
             dataLog("    Removing ", toRemove.size(), " blocks.\n");
         if (toRemove.isEmpty())
             break;
-        for (unsigned i = toRemove.size(); i--;)
-            m_set.remove(toRemove[i]);
+        for (CodeBlock* codeBlock : toRemove)
+            m_set.remove(codeBlock);
         toRemove.resize(0);
     }
 }
@@ -106,10 +98,7 @@
 {
     if (verbose)
         dataLog("Tracing ", m_set.size(), " code blocks.\n");
-    HashSet<CodeBlock*>::iterator iter = m_set.begin();
-    HashSet<CodeBlock*>::iterator end = m_set.end();
-    for (; iter != end; ++iter) {
-        CodeBlock* codeBlock = *iter;
+    for (CodeBlock* codeBlock : m_set) {
         if (!codeBlock->m_mayBeExecuting)
             continue;
         codeBlock->visitAggregate(visitor);

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (165108 => 165109)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2014-03-05 15:48:29 UTC (rev 165108)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2014-03-05 16:46:23 UTC (rev 165109)
@@ -568,9 +568,9 @@
 {
     GCPHASE(VisitProtectedObjects);
     MARK_LOG_ROOT(m_slotVisitor, "Protected Objects");
-    ProtectCountSet::iterator end = m_protectedValues.end();
-    for (ProtectCountSet::iterator it = m_protectedValues.begin(); it != end; ++it)
-        heapRootVisitor.visit(&it->key);
+
+    for (auto pair : m_protectedValues)
+        heapRootVisitor.visit(&pair.key);
     m_slotVisitor.donateAndDrain();
 }
 
@@ -581,14 +581,10 @@
 
     typedef Vector<Vector<ValueStringPair, 0, UnsafeVectorOverflow>* > VectorOfValueStringVectors;
 
-    VectorOfValueStringVectors::iterator end = m_tempSortingVectors.end();
-    for (VectorOfValueStringVectors::iterator it = m_tempSortingVectors.begin(); it != end; ++it) {
-        Vector<ValueStringPair, 0, UnsafeVectorOverflow>* tempSortingVector = *it;
-
-        Vector<ValueStringPair>::iterator vectorEnd = tempSortingVector->end();
-        for (Vector<ValueStringPair>::iterator vectorIt = tempSortingVector->begin(); vectorIt != vectorEnd; ++vectorIt) {
-            if (vectorIt->first)
-                heapRootVisitor.visit(&vectorIt->first);
+    for (auto vector : m_tempSortingVectors) {
+        for (auto valueStringPair : *vector) {
+            if (valueStringPair.first)
+                heapRootVisitor.visit(&valueStringPair.first);
         }
     }
     m_slotVisitor.donateAndDrain();
@@ -672,10 +668,8 @@
 {
 #if ENABLE(GGC)
     GCPHASE(ClearRememberedSet);
-    for (unsigned i = 0; i < rememberedSet.size(); ++i) {
-        const JSCell* cell = rememberedSet[i];
+    for (auto cell : rememberedSet)
         MarkedBlock::blockFor(cell)->clearRemembered(cell);
-    }
 #else
     UNUSED_PARAM(rememberedSet);
 #endif

Modified: trunk/Source/_javascript_Core/heap/Heap.h (165108 => 165109)


--- trunk/Source/_javascript_Core/heap/Heap.h	2014-03-05 15:48:29 UTC (rev 165108)
+++ trunk/Source/_javascript_Core/heap/Heap.h	2014-03-05 16:46:23 UTC (rev 165109)
@@ -451,9 +451,8 @@
 
     template<typename Functor> inline typename Functor::ReturnType Heap::forEachProtectedCell(Functor& functor)
     {
-        ProtectCountSet::iterator end = m_protectedValues.end();
-        for (ProtectCountSet::iterator it = m_protectedValues.begin(); it != end; ++it)
-            functor(it->key);
+        for (auto pair : m_protectedValues)
+            functor(pair.key);
         m_handleSet.forEachStrongHandle(functor, m_protectedValues);
 
         return functor.returnValue();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to