Changeset 62405 in webkit for trunk/JavaScriptCore/runtime/RegExpCache.cpp
- Timestamp:
- Jul 2, 2010, 2:34:43 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/RegExpCache.cpp
r61927 r62405 35 35 { 36 36 if (patternString.size() < maxCacheablePatternLength) { 37 pair< HashMap<RegExpKey, RefPtr<RegExp> >::iterator, bool> result = m_cacheMap.add(RegExpKey(flags, patternString), 0);37 pair<RegExpCacheMap::iterator, bool> result = m_cacheMap.add(RegExpKey(flags, patternString), 0); 38 38 if (!result.second) 39 39 return result.first->second; 40 else 41 return create(patternString, flags, result.first); 40 42 } 41 return create(patternString, flags );43 return create(patternString, flags, m_cacheMap.end()); 42 44 } 43 45 44 PassRefPtr<RegExp> RegExpCache::create(const UString& patternString, const UString& flags )46 PassRefPtr<RegExp> RegExpCache::create(const UString& patternString, const UString& flags, RegExpCacheMap::iterator iterator) 45 47 { 46 RefPtr<RegExp> regExp; 47 48 if (!flags.isNull()) 49 regExp = RegExp::create(m_globalData, patternString, flags); 50 else 51 regExp = RegExp::create(m_globalData, patternString); 48 RefPtr<RegExp> regExp = RegExp::create(m_globalData, patternString, flags); 52 49 53 50 if (patternString.size() >= maxCacheablePatternLength) 54 51 return regExp; 52 53 RegExpKey key = RegExpKey(flags, patternString); 54 iterator->first = key; 55 iterator->second = regExp; 55 56 56 57 ++m_nextKeyToEvict; … … 62 63 m_cacheMap.remove(RegExpKey(patternKeyArray[m_nextKeyToEvict].flagsValue, patternKeyArray[m_nextKeyToEvict].pattern)); 63 64 64 RegExpKey key = RegExpKey(flags, patternString);65 m_cacheMap.set(key, regExp);66 65 patternKeyArray[m_nextKeyToEvict].flagsValue = key.flagsValue; 67 66 patternKeyArray[m_nextKeyToEvict].pattern = patternString.rep();
Note:
See TracChangeset
for help on using the changeset viewer.