Ignore:
Timestamp:
Sep 3, 2014, 5:28:50 PM (11 years ago)
Author:
[email protected]
Message:

CallEdgeProfile::visitWeak() shouldn't attempt to despecify empty profiles
https://bugs.webkit.org/show_bug.cgi?id=136511

Reviewed by Geoffrey Garen.

  • bytecode/CallEdgeProfile.cpp:

(JSC::CallEdgeProfile::worthDespecifying):
(JSC::CallEdgeProfile::visitWeak):
(JSC::CallEdgeProfile::mergeBack):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp

    r173214 r173244  
    9696        return false;
    9797   
    98     if (!!m_primaryCallee && !JSC::worthDespecifying(m_primaryCallee))
    99         return false;
     98    bool didSeeEntry = false;
     99   
     100    if (!!m_primaryCallee) {
     101        didSeeEntry = true;
     102        if (!JSC::worthDespecifying(m_primaryCallee))
     103            return false;
     104    }
    100105   
    101106    if (m_otherCallees) {
    102107        for (unsigned i = m_otherCallees->m_processed.size(); i--;) {
     108            didSeeEntry = true;
    103109            if (!JSC::worthDespecifying(m_otherCallees->m_processed[i].callee()))
    104110                return false;
     
    106112    }
    107113   
    108     return true;
     114    return didSeeEntry;
    109115}
    110116
     
    132138       
    133139        Vector<CallSpectrum::KeyAndCount> list = newSpectrum.buildList();
    134         ASSERT(list.size());
     140        RELEASE_ASSERT(list.size());
    135141        m_primaryCallee = list.last().key;
    136142        m_numCallsToPrimary = list.last().count;
     
    208214    ConcurrentJITLocker locker(m_lock);
    209215   
    210     ASSERT(m_otherCallees);
    211     ASSERT(m_otherCallees->m_temporarySpectrum);
     216    RELEASE_ASSERT(m_otherCallees);
     217    RELEASE_ASSERT(m_otherCallees->m_temporarySpectrum);
    212218   
    213219    if (!!m_primaryCallee)
Note: See TracChangeset for help on using the changeset viewer.