Changeset 76133 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Jan 19, 2011, 9:58:15 AM (14 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r76129 r76133 1 2011-01-19 Michael Saboff <[email protected]> 2 3 Reviewed by Darin Adler. 4 5 <rdar://problem/8882994> Regression: Simple nested backtrack hangs 6 https://bugs.webkit.org/show_bug.cgi?id=52675 7 8 The changeset (r76076) for https://bugs.webkit.org/show_bug.cgi?id=52540 9 broke simple backtracking in some cases. Reworked that change to 10 link both jumps and labels. 11 12 * yarr/YarrJIT.cpp: 13 (JSC::Yarr::YarrGenerator::BacktrackDestination::hasBacktrackToLabel): 14 (JSC::Yarr::YarrGenerator::TermGenerationState::propagateBacktrackingFrom): 15 (JSC::Yarr::YarrGenerator::generateParenthesesSingle): 16 1 17 2011-01-19 Pavel Podivilov <[email protected]> 2 18 -
trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp
r76076 r76133 619 619 } 620 620 621 bool hasBacktrackToLabel() 622 { 623 return m_backtrackToLabel; 624 } 625 621 626 void setBacktrackJumpList(JumpList* jumpList) 622 627 { … … 997 1002 if (doJump) 998 1003 m_backtrack.jumpToBacktrack(generator, backtrack.getBacktrackJumps()); 1004 1005 if (m_backtrack.isLabel() && backtrack.hasBacktrackToLabel()) 1006 backtrack.linkBacktrackToLabel(m_backtrack.getLabel()); 1007 999 1008 if (backtrack.hasDestination()) { 1000 1009 if (m_backtrack.hasDataLabel()) … … 1655 1664 BacktrackDestination& stateBacktrack = state.getBacktrackDestination(); 1656 1665 1657 // If we have a backtrack label, use it for the parenthesis 1658 if (stateBacktrack.isLabel()) 1659 parenthesesBacktrack.linkBacktrackToLabel(stateBacktrack.getLabel()); 1660 else { 1661 state.propagateBacktrackingFrom(this, parenthesesBacktrack); 1662 stateBacktrack.copyBacktrackToLabel(parenthesesBacktrack); 1663 } 1666 state.propagateBacktrackingFrom(this, parenthesesBacktrack); 1667 stateBacktrack.copyBacktrackToLabel(parenthesesBacktrack); 1664 1668 1665 1669 m_expressionState.decrementParenNestingLevel();
Note:
See TracChangeset
for help on using the changeset viewer.