Ignore:
Timestamp:
Mar 5, 2014, 8:46:23 AM (11 years ago)
Author:
[email protected]
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):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/CodeBlockSet.cpp

    r165005 r165109  
    4242CodeBlockSet::~CodeBlockSet()
    4343{
    44     HashSet<CodeBlock*>::iterator iter = m_set.begin();
    45     HashSet<CodeBlock*>::iterator end = m_set.end();
    46     for (; iter != end; ++iter)
    47         (*iter)->deref();
     44    for (CodeBlock* codeBlock : m_set)
     45        codeBlock->deref();
    4846}
    4947
     
    5755void CodeBlockSet::clearMarks()
    5856{
    59     HashSet<CodeBlock*>::iterator iter = m_set.begin();
    60     HashSet<CodeBlock*>::iterator end = m_set.end();
    61     for (; iter != end; ++iter) {
    62         CodeBlock* codeBlock = *iter;
     57    for (CodeBlock* codeBlock : m_set) {
    6358        codeBlock->m_mayBeExecuting = false;
    6459        codeBlock->m_visitAggregateHasBeenCalled = false;
     
    7671        dataLog("Fixpointing over unmarked, set size = ", m_set.size(), "...\n");
    7772    for (;;) {
    78         HashSet<CodeBlock*>::iterator iter = m_set.begin();
    79         HashSet<CodeBlock*>::iterator end = m_set.end();
    80         for (; iter != end; ++iter) {
    81             CodeBlock* codeBlock = *iter;
     73        for (CodeBlock* codeBlock : m_set) {
    8274            if (!codeBlock->hasOneRef())
    8375                continue;
     
    9183        if (toRemove.isEmpty())
    9284            break;
    93         for (unsigned i = toRemove.size(); i--;)
    94             m_set.remove(toRemove[i]);
     85        for (CodeBlock* codeBlock : toRemove)
     86            m_set.remove(codeBlock);
    9587        toRemove.resize(0);
    9688    }
     
    10799    if (verbose)
    108100        dataLog("Tracing ", m_set.size(), " code blocks.\n");
    109     HashSet<CodeBlock*>::iterator iter = m_set.begin();
    110     HashSet<CodeBlock*>::iterator end = m_set.end();
    111     for (; iter != end; ++iter) {
    112         CodeBlock* codeBlock = *iter;
     101    for (CodeBlock* codeBlock : m_set) {
    113102        if (!codeBlock->m_mayBeExecuting)
    114103            continue;
Note: See TracChangeset for help on using the changeset viewer.