[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
paroga at webkit.org
paroga at webkit.org
Fri Jan 21 14:49:31 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit bd0f2e394106262a9f529794cfb5b9ff67f09304
Author: paroga at webkit.org <paroga at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Dec 31 12:43:34 2010 +0000
2010-12-31 Patrick Gansterer <paroga at webkit.org>
Reviewed by Darin Adler.
Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal
https://bugs.webkit.org/show_bug.cgi?id=50517
This change shows about 2% performance win on the xml-parser benchmark.
* wtf/text/AtomicString.cpp:
(WTF::HashAndUTF8CharactersTranslator::equal):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index b8a6a92..bd49e93 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-12-31 Patrick Gansterer <paroga at webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Add a fast case for ASCII strings in HashAndUTF8CharactersTranslator::equal
+ https://bugs.webkit.org/show_bug.cgi?id=50517
+
+ This change shows about 2% performance win on the xml-parser benchmark.
+
+ * wtf/text/AtomicString.cpp:
+ (WTF::HashAndUTF8CharactersTranslator::equal):
+
2010-12-30 Patrick Gansterer <paroga at webkit.org>
Reviewed by Ariya Hidayat.
diff --git a/JavaScriptCore/wtf/text/AtomicString.cpp b/JavaScriptCore/wtf/text/AtomicString.cpp
index acbcd34..93ad21d 100644
--- a/JavaScriptCore/wtf/text/AtomicString.cpp
+++ b/JavaScriptCore/wtf/text/AtomicString.cpp
@@ -225,7 +225,22 @@ struct HashAndUTF8CharactersTranslator {
static bool equal(StringImpl* const& string, const HashAndUTF8Characters& buffer)
{
- return equalUTF16WithUTF8(string->characters(), string->characters() + string->length(), buffer.characters, buffer.characters + buffer.length);
+ if (buffer.utf16Length != string->length())
+ return false;
+
+ const UChar* stringCharacters = string->characters();
+
+ // If buffer contains only ASCII characters UTF-8 and UTF16 length are the same.
+ if (buffer.utf16Length != buffer.length)
+ return equalUTF16WithUTF8(stringCharacters, stringCharacters + string->length(), buffer.characters, buffer.characters + buffer.length);
+
+ for (unsigned i = 0; i < buffer.length; ++i) {
+ ASSERT(isASCII(buffer.characters[i]));
+ if (stringCharacters[i] != buffer.characters[i])
+ return false;
+ }
+
+ return true;
}
static void translate(StringImpl*& location, const HashAndUTF8Characters& buffer, unsigned hash)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list