[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

mjs mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:38:40 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 7ca4a9ee7e3a1343055b3fca2c8e352fa7a7f247
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun May 9 04:55:11 2004 +0000

            Reviewed by Dave.
    
    	- change things around so extremely hot TokenizerString::current()
    	method doesn't have to do any work. It's cheaper to maintain the
    	relevant state than to always compute it.
    
            * khtml/misc/stringit.h:
            (khtml::TokenizerString::TokenizerString): Initialize m_currentChar
            (khtml::TokenizerString::push): update m_currentChar
            (khtml::TokenizerString::advance): ditto
            (khtml::TokenizerString::current): return m_currentChar
            * khtml/misc/stringit.cpp:
            (khtml::TokenizerString::clear): update m_currentChar
            (khtml::TokenizerString::append): update m_currentChar
            (khtml::TokenizerString::prepend): update m_currentChar
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6562 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 031fe05..4118f80 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,21 @@
+2004-05-07  Maciej Stachowiak  <mjs at apple.com>
+
+        Reviewed by Dave.
+
+	- change things around so extremely hot TokenizerString::current()
+	method doesn't have to do any work. It's cheaper to maintain the
+	relevant state than to always compute it.
+	
+        * khtml/misc/stringit.h:
+        (khtml::TokenizerString::TokenizerString): Initialize m_currentChar
+        (khtml::TokenizerString::push): update m_currentChar
+        (khtml::TokenizerString::advance): ditto
+        (khtml::TokenizerString::current): return m_currentChar
+        * khtml/misc/stringit.cpp:
+        (khtml::TokenizerString::clear): update m_currentChar
+        (khtml::TokenizerString::append): update m_currentChar
+        (khtml::TokenizerString::prepend): update m_currentChar
+
 2004-05-07  Don Melton  <gramps at apple.com>
 
         Reviewed by Dave.
diff --git a/WebCore/khtml/misc/stringit.cpp b/WebCore/khtml/misc/stringit.cpp
index 6362693..cb97b90 100644
--- a/WebCore/khtml/misc/stringit.cpp
+++ b/WebCore/khtml/misc/stringit.cpp
@@ -44,6 +44,7 @@ void TokenizerString::clear()
 {
     m_pushedChar1 = 0;
     m_pushedChar2 = 0;
+    m_currentChar = 0;
     m_currentString.clear();
     m_substrings.clear();
     m_lines = 0;
@@ -53,9 +54,9 @@ void TokenizerString::clear()
 void TokenizerString::append(const TokenizerSubstring &s)
 {
     if (s.m_length) {
-        if (!m_currentString.m_length)
+        if (!m_currentString.m_length) {
             m_currentString = s;
-        else {
+	} else {
             m_substrings.append(s);
             m_composite = true;
         }
@@ -87,6 +88,7 @@ void TokenizerString::append(const TokenizerString &s)
         for (; i != e; ++i)
             append(*i);
     }
+    m_currentChar = m_pushedChar1.isNull() ? m_currentString.m_current : &m_pushedChar1;
 }
 
 void TokenizerString::prepend(const TokenizerString &s)
@@ -100,6 +102,7 @@ void TokenizerString::prepend(const TokenizerString &s)
             prepend(*i);
     }
     prepend(s.m_currentString);
+    m_currentChar = m_pushedChar1.isNull() ? m_currentString.m_current : &m_pushedChar1;
 }
 
 void TokenizerString::advanceSubstring()
diff --git a/WebCore/khtml/misc/stringit.h b/WebCore/khtml/misc/stringit.h
index bfc6678..f06253c 100644
--- a/WebCore/khtml/misc/stringit.h
+++ b/WebCore/khtml/misc/stringit.h
@@ -67,9 +67,9 @@ private:
 class TokenizerString
 {
 public:
-    TokenizerString() : m_lines(0), m_composite(false) {}
-    TokenizerString(const QChar *str, int length) : m_currentString(str, length), m_lines(0), m_composite(false) {}
-    TokenizerString(const QString &str) : m_currentString(str), m_lines(0), m_composite(false) {}
+    TokenizerString() : m_currentChar(0), m_lines(0), m_composite(false) {}
+    TokenizerString(const QChar *str, int length) : m_currentString(str, length), m_currentChar(m_currentString.m_current), m_lines(0), m_composite(false) {}
+    TokenizerString(const QString &str) : m_currentString(str), m_currentChar(m_currentString.m_current), m_lines(0), m_composite(false) {}
 
     void clear();
 
@@ -77,9 +77,10 @@ public:
     void prepend(const TokenizerString &);
     
     void push(QChar c) {
-        if (m_pushedChar1.isNull())
+        if (m_pushedChar1.isNull()) {
             m_pushedChar1 = c;
-        else {
+	    m_currentChar = m_pushedChar1.isNull() ? m_currentString.m_current : &m_pushedChar1;
+	} else {
             assert(m_pushedChar2.isNull());
             m_pushedChar2 = c;
         }
@@ -97,6 +98,7 @@ public:
             if (--m_currentString.m_length == 0)
                 advanceSubstring();
         }
+	m_currentChar = m_pushedChar1.isNull() ? m_currentString.m_current: &m_pushedChar1;
     }
     
     bool escaped() const { return !m_pushedChar1.isNull(); }
@@ -115,11 +117,12 @@ private:
     void prepend(const TokenizerSubstring &);
 
     void advanceSubstring();
-    const QChar *current() const { return m_pushedChar1.isNull() ? m_currentString.m_current : &m_pushedChar1; }
+    const QChar *current() const { return m_currentChar; }
 
     QChar m_pushedChar1;
     QChar m_pushedChar2;
     TokenizerSubstring m_currentString;
+    const QChar *m_currentChar;
     QValueList<TokenizerSubstring> m_substrings;
     int m_lines;
     bool m_composite;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list