Title: [148772] trunk/Source/WebCore
Revision
148772
Author
[email protected]
Date
2013-04-19 14:17:33 -0700 (Fri, 19 Apr 2013)

Log Message

Use Vector instead of StringBuilder for CSSPreloadScanner's buffers
https://bugs.webkit.org/show_bug.cgi?id=114794

Reviewed by Ryosuke Niwa.

Cleanup for other String changes.

CSSPreloadScanner only handles UChar, StringBuilder was a little
overkill.

* html/parser/CSSPreloadScanner.cpp:
(WebCore):
(WebCore::ruleEqualIgnoringCase):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (148771 => 148772)


--- trunk/Source/WebCore/ChangeLog	2013-04-19 21:13:47 UTC (rev 148771)
+++ trunk/Source/WebCore/ChangeLog	2013-04-19 21:17:33 UTC (rev 148772)
@@ -1,5 +1,23 @@
 2013-04-19  Benjamin Poulain  <[email protected]>
 
+        Use Vector instead of StringBuilder for CSSPreloadScanner's buffers
+        https://bugs.webkit.org/show_bug.cgi?id=114794
+
+        Reviewed by Ryosuke Niwa.
+
+        Cleanup for other String changes.
+
+        CSSPreloadScanner only handles UChar, StringBuilder was a little
+        overkill.
+
+        * html/parser/CSSPreloadScanner.cpp:
+        (WebCore):
+        (WebCore::ruleEqualIgnoringCase):
+        (WebCore::CSSPreloadScanner::emitRule):
+        * html/parser/CSSPreloadScanner.h:
+
+2013-04-19  Benjamin Poulain  <[email protected]>
+
         StyledMarkupAccumulator::appendText() should not allocate an intermediary StringBuilder
         https://bugs.webkit.org/show_bug.cgi?id=114847
 

Modified: trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp (148771 => 148772)


--- trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp	2013-04-19 21:13:47 UTC (rev 148771)
+++ trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp	2013-04-19 21:17:33 UTC (rev 148772)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2010, 2013 Apple Inc. All Rights Reserved.
  * Copyright (C) 2009 Torch Mobile, Inc. http://www.torchmobile.com/
  * Copyright (C) 2010 Google Inc. All Rights Reserved.
  *
@@ -211,10 +211,17 @@
     return String(characters + offset, reducedLength);
 }
 
+template<unsigned referenceLength>
+static inline bool ruleEqualIgnoringCase(const Vector<UChar>& rule, const char (&reference)[referenceLength])
+{
+    unsigned referenceCharactersLength = referenceLength - 1;
+    return rule.size() == referenceCharactersLength && equalIgnoringCase(reference, rule.data(), referenceCharactersLength);
+}
+
 void CSSPreloadScanner::emitRule()
 {
-    if (equalIgnoringCase("import", m_rule.characters(), m_rule.length())) {
-        String url = "" m_ruleValue.length());
+    if (ruleEqualIgnoringCase(m_rule, "import")) {
+        String url = "" m_ruleValue.size());
         if (!url.isEmpty()) {
             KURL baseElementURL; // FIXME: This should be passed in from the HTMLPreloadScaner via scan()!
             OwnPtr<PreloadRequest> request = PreloadRequest::create("css", url, baseElementURL, CachedResource::CSSStyleSheet);
@@ -222,7 +229,7 @@
             m_requests->append(request.release());
         }
         m_state = Initial;
-    } else if (equalIgnoringCase("charset", m_rule.characters(), m_rule.length()))
+    } else if (ruleEqualIgnoringCase(m_rule, "charset"))
         m_state = Initial;
     else
         m_state = DoneParsingImportRules;

Modified: trunk/Source/WebCore/html/parser/CSSPreloadScanner.h (148771 => 148772)


--- trunk/Source/WebCore/html/parser/CSSPreloadScanner.h	2013-04-19 21:13:47 UTC (rev 148771)
+++ trunk/Source/WebCore/html/parser/CSSPreloadScanner.h	2013-04-19 21:17:33 UTC (rev 148772)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2013 Apple Inc. All Rights Reserved.
  * Copyright (C) 2010 Google Inc. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,7 @@
 
 #include "HTMLResourcePreloader.h"
 #include "HTMLToken.h"
-#include <wtf/text/StringBuilder.h>
+#include <wtf/Vector.h>
 
 namespace WebCore {
 
@@ -67,8 +67,8 @@
     void emitRule();
 
     State m_state;
-    StringBuilder m_rule;
-    StringBuilder m_ruleValue;
+    Vector<UChar> m_rule;
+    Vector<UChar> m_ruleValue;
 
     // Only non-zero during scan()
     PreloadRequestStream* m_requests;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to