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