Changeset 57608 in webkit for trunk/JavaScriptCore/yarr/RegexJIT.cpp
- Timestamp:
- Apr 14, 2010, 2:38:44 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/yarr/RegexJIT.cpp
r55500 r57608 1089 1089 1090 1090 case PatternTerm::TypeBackReference: 1091 m_generationFailed = true;1091 ASSERT_NOT_REACHED(); 1092 1092 break; 1093 1093 … … 1096 1096 1097 1097 case PatternTerm::TypeParenthesesSubpattern: 1098 if ((term.quantityCount == 1) && !term.parentheses.isCopy) 1099 generateParenthesesSingle(state); 1100 else 1101 m_generationFailed = true; 1098 ASSERT((term.quantityCount == 1) && !term.parentheses.isCopy); // must fallback to pcre before this point 1099 generateParenthesesSingle(state); 1102 1100 break; 1103 1101 … … 1352 1350 RegexGenerator(RegexPattern& pattern) 1353 1351 : m_pattern(pattern) 1354 , m_generationFailed(false)1355 1352 { 1356 1353 } … … 1382 1379 } 1383 1380 1384 bool generationFailed()1385 {1386 return m_generationFailed;1387 }1388 1389 1381 private: 1390 1382 RegexPattern& m_pattern; 1391 1383 Vector<AlternativeBacktrackRecord> m_backtrackRecords; 1392 bool m_generationFailed;1393 1384 }; 1394 1385 … … 1402 1393 numSubpatterns = pattern.m_numSubpatterns; 1403 1394 1404 RegexGenerator generator(pattern); 1405 generator.compile(globalData, jitObject); 1406 1407 if (generator.generationFailed()) { 1395 if (pattern.m_shouldFallBack) { 1408 1396 JSRegExpIgnoreCaseOption ignoreCaseOption = ignoreCase ? JSRegExpIgnoreCase : JSRegExpDoNotIgnoreCase; 1409 1397 JSRegExpMultilineOption multilineOption = multiline ? JSRegExpMultiline : JSRegExpSingleLine; 1410 1398 jitObject.setFallback(jsRegExpCompile(reinterpret_cast<const UChar*>(patternString.data()), patternString.size(), ignoreCaseOption, multilineOption, &numSubpatterns, &error)); 1399 } else { 1400 RegexGenerator generator(pattern); 1401 generator.compile(globalData, jitObject); 1411 1402 } 1412 1403 }
Note:
See TracChangeset
for help on using the changeset viewer.