Ignore:
Timestamp:
Dec 29, 2014, 6:59:25 PM (10 years ago)
Author:
[email protected]
Message:

Move JavaScriptCore/yarr to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=139621

Reviewed by Anders Carlsson.

Final clean up OwnPtr|PassOwnPtr in JavaScriptCore/yarr.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):

  • yarr/YarrInterpreter.h:

(JSC::Yarr::BytecodePattern::BytecodePattern):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::opCompileParentheticalAssertion):
(JSC::Yarr::YarrGenerator::opCompileBody):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::CharacterClassConstructor::charClass):
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::reset):
(JSC::Yarr::YarrPatternConstructor::atomPatternCharacter):
(JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd):
(JSC::Yarr::YarrPatternConstructor::atomParenthesesSubpatternBegin):
(JSC::Yarr::YarrPatternConstructor::atomParentheticalAssertionBegin):
(JSC::Yarr::YarrPatternConstructor::copyDisjunction):
(JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses):
(JSC::Yarr::YarrPatternConstructor::optimizeDotStarWrappedExpressions):

  • yarr/YarrPattern.h:

(JSC::Yarr::PatternDisjunction::addNewAlternative):
(JSC::Yarr::YarrPattern::newlineCharacterClass):
(JSC::Yarr::YarrPattern::digitsCharacterClass):
(JSC::Yarr::YarrPattern::spacesCharacterClass):
(JSC::Yarr::YarrPattern::wordcharCharacterClass):
(JSC::Yarr::YarrPattern::nondigitsCharacterClass):
(JSC::Yarr::YarrPattern::nonspacesCharacterClass):
(JSC::Yarr::YarrPattern::nonwordcharCharacterClass):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/yarr/YarrPattern.cpp

    r174012 r177820  
    176176    }
    177177
    178     PassOwnPtr<CharacterClass> charClass()
    179     {
    180         OwnPtr<CharacterClass> characterClass = adoptPtr(new CharacterClass);
     178    std::unique_ptr<CharacterClass> charClass()
     179    {
     180        auto characterClass = std::make_unique<CharacterClass>();
    181181
    182182        characterClass->m_matches.swap(m_matches);
     
    185185        characterClass->m_rangesUnicode.swap(m_rangesUnicode);
    186186
    187         return characterClass.release();
     187        return characterClass;
    188188    }
    189189
     
    275275        , m_invertParentheticalAssertion(false)
    276276    {
    277         OwnPtr<PatternDisjunction> body = adoptPtr(new PatternDisjunction);
     277        auto body = std::make_unique<PatternDisjunction>();
    278278        m_pattern.m_body = body.get();
    279279        m_alternative = body->addNewAlternative();
    280         m_pattern.m_disjunctions.append(body.release());
     280        m_pattern.m_disjunctions.append(WTF::move(body));
    281281    }
    282282
     
    290290        m_characterClassConstructor.reset();
    291291
    292         OwnPtr<PatternDisjunction> body = adoptPtr(new PatternDisjunction);
     292        auto body = std::make_unique<PatternDisjunction>();
    293293        m_pattern.m_body = body.get();
    294294        m_alternative = body->addNewAlternative();
    295         m_pattern.m_disjunctions.append(body.release());
     295        m_pattern.m_disjunctions.append(WTF::move(body));
    296296    }
    297297   
     
    330330
    331331        m_characterClassConstructor.putUnicodeIgnoreCase(ch, info);
    332         OwnPtr<CharacterClass> newCharacterClass = m_characterClassConstructor.charClass();
     332        auto newCharacterClass = m_characterClassConstructor.charClass();
    333333        m_alternative->m_terms.append(PatternTerm(newCharacterClass.get(), false));
    334         m_pattern.m_userCharacterClasses.append(newCharacterClass.release());
     334        m_pattern.m_userCharacterClasses.append(WTF::move(newCharacterClass));
    335335    }
    336336
     
    392392    void atomCharacterClassEnd()
    393393    {
    394         OwnPtr<CharacterClass> newCharacterClass = m_characterClassConstructor.charClass();
     394        auto newCharacterClass = m_characterClassConstructor.charClass();
    395395        m_alternative->m_terms.append(PatternTerm(newCharacterClass.get(), m_invertCharacterClass));
    396         m_pattern.m_userCharacterClasses.append(newCharacterClass.release());
     396        m_pattern.m_userCharacterClasses.append(WTF::move(newCharacterClass));
    397397    }
    398398
     
    403403            m_pattern.m_numSubpatterns++;
    404404
    405         OwnPtr<PatternDisjunction> parenthesesDisjunction = adoptPtr(new PatternDisjunction(m_alternative));
     405        auto parenthesesDisjunction = std::make_unique<PatternDisjunction>(m_alternative);
    406406        m_alternative->m_terms.append(PatternTerm(PatternTerm::TypeParenthesesSubpattern, subpatternId, parenthesesDisjunction.get(), capture, false));
    407407        m_alternative = parenthesesDisjunction->addNewAlternative();
    408         m_pattern.m_disjunctions.append(parenthesesDisjunction.release());
     408        m_pattern.m_disjunctions.append(WTF::move(parenthesesDisjunction));
    409409    }
    410410
    411411    void atomParentheticalAssertionBegin(bool invert = false)
    412412    {
    413         OwnPtr<PatternDisjunction> parenthesesDisjunction = adoptPtr(new PatternDisjunction(m_alternative));
     413        auto parenthesesDisjunction = std::make_unique<PatternDisjunction>(m_alternative);
    414414        m_alternative->m_terms.append(PatternTerm(PatternTerm::TypeParentheticalAssertion, m_pattern.m_numSubpatterns + 1, parenthesesDisjunction.get(), false, invert));
    415415        m_alternative = parenthesesDisjunction->addNewAlternative();
    416416        m_invertParentheticalAssertion = invert;
    417         m_pattern.m_disjunctions.append(parenthesesDisjunction.release());
     417        m_pattern.m_disjunctions.append(WTF::move(parenthesesDisjunction));
    418418    }
    419419
     
    480480    PatternDisjunction* copyDisjunction(PatternDisjunction* disjunction, bool filterStartsWithBOL = false)
    481481    {
    482         OwnPtr<PatternDisjunction> newDisjunction;
     482        std::unique_ptr<PatternDisjunction> newDisjunction;
    483483        for (unsigned alt = 0; alt < disjunction->m_alternatives.size(); ++alt) {
    484484            PatternAlternative* alternative = disjunction->m_alternatives[alt].get();
    485485            if (!filterStartsWithBOL || !alternative->m_startsWithBOL) {
    486486                if (!newDisjunction) {
    487                     newDisjunction = adoptPtr(new PatternDisjunction());
     487                    newDisjunction = std::make_unique<PatternDisjunction>();
    488488                    newDisjunction->m_parent = disjunction->m_parent;
    489489                }
     
    499499
    500500        PatternDisjunction* copiedDisjunction = newDisjunction.get();
    501         m_pattern.m_disjunctions.append(newDisjunction.release());
     501        m_pattern.m_disjunctions.append(WTF::move(newDisjunction));
    502502        return copiedDisjunction;
    503503    }
     
    699699            return;
    700700
    701         Vector<OwnPtr<PatternAlternative>>& alternatives = m_pattern.m_body->m_alternatives;
     701        Vector<std::unique_ptr<PatternAlternative>>& alternatives = m_pattern.m_body->m_alternatives;
    702702        for (size_t i = 0; i < alternatives.size(); ++i) {
    703703            Vector<PatternTerm>& terms = alternatives[i]->m_terms;
     
    769769    void optimizeDotStarWrappedExpressions()
    770770    {
    771         Vector<OwnPtr<PatternAlternative>>& alternatives = m_pattern.m_body->m_alternatives;
     771        Vector<std::unique_ptr<PatternAlternative>>& alternatives = m_pattern.m_body->m_alternatives;
    772772        if (alternatives.size() != 1)
    773773            return;
Note: See TracChangeset for help on using the changeset viewer.