Ignore:
Timestamp:
Nov 14, 2011, 11:25:40 AM (14 years ago)
Author:
[email protected]
Message:

Towards 8 Bit Strings: Templatize YARR Parser
https://bugs.webkit.org/show_bug.cgi?id=72288

Changed Yarr::Parser to be a template based on character type.

Reviewed by Oliver Hunt.

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::Parser):
(JSC::Yarr::parse):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/yarr/YarrParser.h

    r98624 r100167  
    4444
    4545// The Parser class should not be used directly - only via the Yarr::parse() method.
    46 template<class Delegate>
     46template<class Delegate, typename CharType>
    4747class Parser {
    4848private:
     
    232232        , m_backReferenceLimit(backReferenceLimit)
    233233        , m_err(NoError)
    234         , m_data(pattern.characters16())
     234        , m_data(pattern.getCharacters<CharType>())
    235235        , m_size(pattern.length())
    236236        , m_index(0)
     
    238238    {
    239239    }
    240    
     240
    241241    /*
    242242     * parseEscape():
     
    794794    unsigned m_backReferenceLimit;
    795795    ErrorCode m_err;
    796     const UChar* m_data;
     796    const CharType* m_data;
    797797    unsigned m_size;
    798798    unsigned m_index;
     
    865865const char* parse(Delegate& delegate, const UString& pattern, unsigned backReferenceLimit = quantifyInfinite)
    866866{
    867     return Parser<Delegate>(delegate, pattern, backReferenceLimit).parse();
     867    if (pattern.is8Bit())
     868        return Parser<Delegate, LChar>(delegate, pattern, backReferenceLimit).parse();
     869    return Parser<Delegate, UChar>(delegate, pattern, backReferenceLimit).parse();
    868870}
    869871
Note: See TracChangeset for help on using the changeset viewer.