Reviewed by Trey
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Aug 2004 17:55:34 +0000 (17:55 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Aug 2004 17:55:34 +0000 (17:55 +0000)
        Efficiency improvements on string manipulations in these two new function
        implementations. Use the versions of QString append/prepend that take
        (QChar *c, uint length) instead of creating new strings each time.

        * khtml/xml/dom_position.cpp:
        (DOM::Position::previousWordPosition): Changed, as described above.
        (DOM::Position::nextWordPosition): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7231 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/xml/dom_position.cpp

index b85fdea0ebff69cf95833650e31ff740e28be020..3575de0f48a40fdccd14bb8b881e391b13a00031 100644 (file)
@@ -1,3 +1,15 @@
+2004-08-11  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by Trey
+
+        Efficiency improvements on string manipulations in these two new function
+        implementations. Use the versions of QString append/prepend that take
+        (QChar *c, uint length) instead of creating new strings each time.
+
+        * khtml/xml/dom_position.cpp:
+        (DOM::Position::previousWordPosition): Changed, as described above.
+        (DOM::Position::nextWordPosition): Ditto.
+
 2004-08-11  Ken Kocienda  <kocienda@apple.com>
 
         Reviewed by Darin
 2004-08-11  Ken Kocienda  <kocienda@apple.com>
 
         Reviewed by Darin
index 52f194a372ed31f16fd3625572cc9f39b42f3ecf..5c79c8a73df61270ba7322484840f2f746fad3c7 100644 (file)
@@ -365,7 +365,7 @@ Position Position::previousWordPosition() const
     while (!it.atEnd() && it.length() > 0) {
         // Keep asking the iterator for chunks until the nextWordFromIndex() function
         // returns a non-zero value.
     while (!it.atEnd() && it.length() > 0) {
         // Keep asking the iterator for chunks until the nextWordFromIndex() function
         // returns a non-zero value.
-        string.prepend(QString(it.characters(), it.length()));
+        string.prepend(it.characters(), it.length());
         next = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), string.length(), false);
         if (next != 0)
             break;
         next = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), string.length(), false);
         if (next != 0)
             break;
@@ -383,7 +383,10 @@ Position Position::previousWordPosition() const
         // Make a check to see if the position should be before or after the replaced element
         // by performing an additional check with a modified string which uses an "X" 
         // character to stand in for the replaced element.
         // Make a check to see if the position should be before or after the replaced element
         // by performing an additional check with a modified string which uses an "X" 
         // character to stand in for the replaced element.
-        string.prepend("X ");
+        QChar chars[2];
+        chars[0] = 'X';
+        chars[1] = ' ';
+        string.prepend(chars, 2);
         unsigned pastImage = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), string.length(), false);
         Range range(it.range());
         if (pastImage == 0)
         unsigned pastImage = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), string.length(), false);
         Range range(it.range());
         if (pastImage == 0)
@@ -425,7 +428,7 @@ Position Position::nextWordPosition() const
     while (!it.atEnd() && it.length() > 0) {
         // Keep asking the iterator for chunks until the nextWordFromIndex() function
         // returns a value not equal to the length of the string passed to it.
     while (!it.atEnd() && it.length() > 0) {
         // Keep asking the iterator for chunks until the nextWordFromIndex() function
         // returns a value not equal to the length of the string passed to it.
-        string += QString(it.characters(), it.length());
+        string.append(it.characters(), it.length());
         next = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), 0, true);
         if (next != string.length())
             break;
         next = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), 0, true);
         if (next != string.length())
             break;
@@ -443,7 +446,10 @@ Position Position::nextWordPosition() const
         // Make a check to see if the position should be before or after the replaced element
         // by performing an additional check with a modified string which uses an "X" 
         // character to stand in for the replaced element.
         // Make a check to see if the position should be before or after the replaced element
         // by performing an additional check with a modified string which uses an "X" 
         // character to stand in for the replaced element.
-        string += " X";
+        QChar chars[2];
+        chars[0] = ' ';
+        chars[1] = 'X';
+        string.append(chars, 2);
         unsigned pastImage = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), 0, true);
         Range range(it.range());
         if (next != pastImage)
         unsigned pastImage = khtml::nextWordFromIndex(const_cast<QChar *>(string.unicode()), string.length(), 0, true);
         Range range(it.range());
         if (next != pastImage)