Title: [103672] trunk/Source/_javascript_Core
Revision
103672
Author
kl...@webkit.org
Date
2011-12-25 13:21:06 -0800 (Sun, 25 Dec 2011)

Log Message

Yarr: Avoid copying vectors in CharacterClassConstructor.
<http://webkit.org/b/75206>

Reviewed by Darin Adler.

Yarr::CharacterClassConstructor::charClass() was hot when loading twitter
feeds (1.2%), replace the usage of Vector::append() by swap() since we're
always clearing the source vector afterwards anyway.

* yarr/YarrPattern.cpp:
(JSC::Yarr::CharacterClassConstructor::charClass):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (103671 => 103672)


--- trunk/Source/_javascript_Core/ChangeLog	2011-12-25 19:03:16 UTC (rev 103671)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-12-25 21:21:06 UTC (rev 103672)
@@ -1,3 +1,17 @@
+2011-12-25  Andreas Kling  <awesomekl...@apple.com>
+
+        Yarr: Avoid copying vectors in CharacterClassConstructor.
+        <http://webkit.org/b/75206>
+
+        Reviewed by Darin Adler.
+
+        Yarr::CharacterClassConstructor::charClass() was hot when loading twitter
+        feeds (1.2%), replace the usage of Vector::append() by swap() since we're
+        always clearing the source vector afterwards anyway.
+
+        * yarr/YarrPattern.cpp:
+        (JSC::Yarr::CharacterClassConstructor::charClass):
+
 2011-12-24  Darin Adler  <da...@apple.com>
 
         Specialize HashTraits for RefPtr to use PassRefPtr as "pass type" to reduce reference count churn

Modified: trunk/Source/_javascript_Core/yarr/YarrPattern.cpp (103671 => 103672)


--- trunk/Source/_javascript_Core/yarr/YarrPattern.cpp	2011-12-25 19:03:16 UTC (rev 103671)
+++ trunk/Source/_javascript_Core/yarr/YarrPattern.cpp	2011-12-25 21:21:06 UTC (rev 103672)
@@ -144,13 +144,11 @@
     {
         CharacterClass* characterClass = new CharacterClass(0);
 
-        characterClass->m_matches.append(m_matches);
-        characterClass->m_ranges.append(m_ranges);
-        characterClass->m_matchesUnicode.append(m_matchesUnicode);
-        characterClass->m_rangesUnicode.append(m_rangesUnicode);
+        characterClass->m_matches.swap(m_matches);
+        characterClass->m_ranges.swap(m_ranges);
+        characterClass->m_matchesUnicode.swap(m_matchesUnicode);
+        characterClass->m_rangesUnicode.swap(m_rangesUnicode);
 
-        reset();
-
         return characterClass;
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to