⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 244024 in webkit


Ignore:
Timestamp:
Apr 8, 2019, 10:09:24 AM (7 years ago)
Author:
bshafiei@apple.com
Message:

Cherry-pick r243967. rdar://problem/49589308

REGRESSION (r243642): Crash in reddit.com page
https://bugs.webkit.org/show_bug.cgi?id=196684

Reviewed by Geoffrey Garen.

JSTests:

New regression test.

  • stress/regexp-nongreedy-charclass-backtracks.js: Added.

Source/JavaScriptCore:

In r243642, the code that saves and restores the count for non-greedy character classes
was inadvertently put inside an if statement. This code should be generated for all
non-greedy character classes.

  • yarr/YarrJIT.cpp: (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy): (JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
tags/Safari-608.1.15
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • tags/Safari-608.1.15/JSTests/ChangeLog

    r243851 r244024  
     12019-04-08  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Cherry-pick r243967. rdar://problem/49589308
     4
     5    REGRESSION (r243642): Crash in reddit.com page
     6    https://bugs.webkit.org/show_bug.cgi?id=196684
     7   
     8    Reviewed by Geoffrey Garen.
     9   
     10    JSTests:
     11   
     12    New regression test.
     13   
     14    * stress/regexp-nongreedy-charclass-backtracks.js: Added.
     15   
     16    Source/JavaScriptCore:
     17   
     18    In r243642, the code that saves and restores the count for non-greedy character classes
     19    was inadvertently put inside an if statement.  This code should be generated for all
     20    non-greedy character classes.
     21   
     22    * yarr/YarrJIT.cpp:
     23    (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
     24    (JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):
     25   
     26   
     27    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     28
     29    2019-04-07  Michael Saboff  <msaboff@apple.com>
     30
     31            REGRESSION (r243642): Crash in reddit.com page
     32            https://bugs.webkit.org/show_bug.cgi?id=196684
     33
     34            Reviewed by Geoffrey Garen.
     35
     36            New regression test.
     37
     38            * stress/regexp-nongreedy-charclass-backtracks.js: Added.
     39
    1402019-04-03  Robin Morisset  <rmorisset@apple.com>
    241
  • tags/Safari-608.1.15/Source/JavaScriptCore/ChangeLog

    r244023 r244024  
     12019-04-08  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Cherry-pick r243967. rdar://problem/49589308
     4
     5    REGRESSION (r243642): Crash in reddit.com page
     6    https://bugs.webkit.org/show_bug.cgi?id=196684
     7   
     8    Reviewed by Geoffrey Garen.
     9   
     10    JSTests:
     11   
     12    New regression test.
     13   
     14    * stress/regexp-nongreedy-charclass-backtracks.js: Added.
     15   
     16    Source/JavaScriptCore:
     17   
     18    In r243642, the code that saves and restores the count for non-greedy character classes
     19    was inadvertently put inside an if statement.  This code should be generated for all
     20    non-greedy character classes.
     21   
     22    * yarr/YarrJIT.cpp:
     23    (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
     24    (JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):
     25   
     26   
     27    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     28
     29    2019-04-07  Michael Saboff  <msaboff@apple.com>
     30
     31            REGRESSION (r243642): Crash in reddit.com page
     32            https://bugs.webkit.org/show_bug.cgi?id=196684
     33
     34            Reviewed by Geoffrey Garen.
     35
     36            In r243642, the code that saves and restores the count for non-greedy character classes
     37            was inadvertently put inside an if statement.  This code should be generated for all
     38            non-greedy character classes.
     39
     40            * yarr/YarrJIT.cpp:
     41            (JSC::Yarr::YarrGenerator::generateCharacterClassNonGreedy):
     42            (JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):
     43
    1442019-04-08  Babak Shafiei  <bshafiei@apple.com>
    245
  • tags/Safari-608.1.15/Source/JavaScriptCore/yarr/YarrJIT.cpp

    r244023 r244024  
    19441944        move(TrustedImm32(0), countRegister);
    19451945        op.m_reentry = label();
     1946
     1947#ifdef JIT_UNICODE_EXPRESSIONS
    19461948        if (m_decodeSurrogatePairs) {
    19471949            if (!term->characterClass->hasOneCharacterSize() || term->invert())
    19481950                storeToFrame(index, term->frameLocation + BackTrackInfoCharacterClass::beginIndex());
    1949             storeToFrame(countRegister, term->frameLocation + BackTrackInfoCharacterClass::matchAmountIndex());
    1950         }
     1951        }
     1952#endif
     1953
     1954        storeToFrame(countRegister, term->frameLocation + BackTrackInfoCharacterClass::matchAmountIndex());
    19511955    }
    19521956
     
    19671971            if (!term->characterClass->hasOneCharacterSize() || term->invert())
    19681972                loadFromFrame(term->frameLocation + BackTrackInfoCharacterClass::beginIndex(), index);
    1969             loadFromFrame(term->frameLocation + BackTrackInfoCharacterClass::matchAmountIndex(), countRegister);
    1970         }
    1971 #endif
     1973        }
     1974#endif
     1975
     1976        loadFromFrame(term->frameLocation + BackTrackInfoCharacterClass::matchAmountIndex(), countRegister);
    19721977
    19731978        nonGreedyFailures.append(atEndOfInput());
Note: See TracChangeset for help on using the changeset viewer.