Title: [100167] trunk/Source/_javascript_Core
Revision
100167
Author
msab...@apple.com
Date
2011-11-14 11:25:40 -0800 (Mon, 14 Nov 2011)

Log 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):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (100166 => 100167)


--- trunk/Source/_javascript_Core/ChangeLog	2011-11-14 19:23:36 UTC (rev 100166)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-11-14 19:25:40 UTC (rev 100167)
@@ -1,3 +1,16 @@
+2011-11-14  Michael Saboff  <msab...@apple.com>
+
+        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):
+
 2011-11-14  Geoffrey Garen  <gga...@apple.com>
 
         32-bit build fix: Removed unused declaration.

Modified: trunk/Source/_javascript_Core/yarr/YarrParser.h (100166 => 100167)


--- trunk/Source/_javascript_Core/yarr/YarrParser.h	2011-11-14 19:23:36 UTC (rev 100166)
+++ trunk/Source/_javascript_Core/yarr/YarrParser.h	2011-11-14 19:25:40 UTC (rev 100167)
@@ -43,7 +43,7 @@
 };
 
 // The Parser class should not be used directly - only via the Yarr::parse() method.
-template<class Delegate>
+template<class Delegate, typename CharType>
 class Parser {
 private:
     template<class FriendDelegate>
@@ -231,13 +231,13 @@
         : m_delegate(delegate)
         , m_backReferenceLimit(backReferenceLimit)
         , m_err(NoError)
-        , m_data(pattern.characters16())
+        , m_data(pattern.getCharacters<CharType>())
         , m_size(pattern.length())
         , m_index(0)
         , m_parenthesesNestingDepth(0)
     {
     }
-    
+
     /*
      * parseEscape():
      *
@@ -793,7 +793,7 @@
     Delegate& m_delegate;
     unsigned m_backReferenceLimit;
     ErrorCode m_err;
-    const UChar* m_data;
+    const CharType* m_data;
     unsigned m_size;
     unsigned m_index;
     unsigned m_parenthesesNestingDepth;
@@ -864,7 +864,9 @@
 template<class Delegate>
 const char* parse(Delegate& delegate, const UString& pattern, unsigned backReferenceLimit = quantifyInfinite)
 {
-    return Parser<Delegate>(delegate, pattern, backReferenceLimit).parse();
+    if (pattern.is8Bit())
+        return Parser<Delegate, LChar>(delegate, pattern, backReferenceLimit).parse();
+    return Parser<Delegate, UChar>(delegate, pattern, backReferenceLimit).parse();
 }
 
 } } // namespace JSC::Yarr
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to