Changeset 76275 in webkit
- Timestamp:
- Jan 20, 2011 1:31:21 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r76274 r76275 1 2011-01-20 Michael Saboff <msaboff@apple.com> 2 3 Reviewed by Oliver Hunt. 4 5 <rdar://problem/8890203> [RegexFuzz] Crash in generated code (52773) 6 https://bugs.webkit.org/show_bug.cgi?id=52773 7 8 New test to validate fix. 9 10 * fast/regex/parentheses-expected.txt: 11 * fast/regex/script-tests/parentheses.js: 12 1 13 2011-01-20 Dirk Schulze <krit@webkit.org> 2 14 -
trunk/LayoutTests/fast/regex/parentheses-expected.txt
r76133 r76275 75 75 PASS regexp43.exec('SSS') is [''] 76 76 PASS regexp44.exec('SSS') is ['',undefined] 77 PASS regexp45.exec('vt') is null 77 78 PASS 'Hi Bob'.match(/(Rob)|(Bob)|(Robert)|(Bobby)/) is ['Bob',undefined,'Bob',undefined,undefined] 78 79 PASS successfullyParsed is true -
trunk/LayoutTests/fast/regex/script-tests/parentheses.js
r76133 r76275 200 200 shouldBe("regexp44.exec('SSS')", "['',undefined]"); 201 201 202 var regexp45 = /((?!(?:|)v{2,}|))/; 203 shouldBeNull("regexp45.exec('vt')"); 204 202 205 shouldBe("'Hi Bob'.match(/(Rob)|(Bob)|(Robert)|(Bobby)/)", "['Bob',undefined,'Bob',undefined,undefined]"); 203 206 -
trunk/Source/JavaScriptCore/ChangeLog
r76263 r76275 1 2011-01-20 Michael Saboff <msaboff@apple.com> 2 3 Reviewed by Oliver Hunt. 4 5 <rdar://problem/8890203> [RegexFuzz] Crash in generated code (52773) 6 https://bugs.webkit.org/show_bug.cgi?id=52773 7 8 Fixed case where an existing DataLabelPtr is overwritten. The 9 replacing DataLabelPtr is now resolved immediately in 10 linkDataLabelToBacktrackIfExists(). Cleanup - eliminated bool 11 return value for the routine as it was never used. 12 13 * yarr/YarrJIT.cpp: 14 (JSC::Yarr::YarrGenerator::TermGenerationState::linkDataLabelToBacktrackIfExists): 15 1 16 2011-01-20 Andras Becsi <abecsi@webkit.org> 2 17 -
trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp
r76133 r76275 640 640 *m_subDataLabelPtr = dp; 641 641 m_subDataLabelPtr = 0; 642 } else 642 } else { 643 ASSERT(!hasDataLabel()); 643 644 m_dataLabelPtr = dp; 645 } 644 646 } 645 647 … … 931 933 } 932 934 933 boollinkDataLabelToBacktrackIfExists(YarrGenerator* generator, DataLabelPtr dataLabel)935 void linkDataLabelToBacktrackIfExists(YarrGenerator* generator, DataLabelPtr dataLabel) 934 936 { 935 937 // If we have a stack offset backtrack destination, use it directly … … 938 940 m_backtrack.clearSubDataLabelPtr(); 939 941 } else { 940 // Otherwise set the data label (which may be linked) 941 setBacktrackDataLabel(dataLabel); 942 943 if ((m_backtrack.isLabel()) && (m_backtrack.hasDataLabel())) { 944 generator->m_expressionState.m_backtrackRecords.append(AlternativeBacktrackRecord(m_backtrack.getDataLabel(), m_backtrack.getLabel())); 945 m_backtrack.clearDataLabel(); 946 return true; 947 } 948 } 949 950 return false; 942 // If we have a backtrack label, connect the datalabel to it directly. 943 if (m_backtrack.isLabel()) 944 generator->m_expressionState.m_backtrackRecords.append(AlternativeBacktrackRecord(dataLabel, m_backtrack.getLabel())); 945 else 946 setBacktrackDataLabel(dataLabel); 947 } 951 948 } 952 949
Note: See TracChangeset
for help on using the changeset viewer.