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