Changeset 126984 in webkit


Ignore:
Timestamp:
Aug 29, 2012, 4:16:48 AM (13 years ago)
Author:
abarth@webkit.org
Message:

Improve string efficiency using StringBuilder and StringOperations
https://bugs.webkit.org/show_bug.cgi?id=95304

Reviewed by Eric Seidel.

As recommended by http://trac.webkit.org/wiki/EfficientStrings.

  • css/CSSLineBoxContainValue.cpp:

(WebCore::CSSLineBoxContainValue::customCssText):

  • css/CSSPropertySourceData.cpp:

(WebCore::CSSPropertySourceData::toString):

  • css/MediaList.cpp:

(WebCore::MediaQuerySet::mediaText):

  • css/ShadowValue.cpp:

(WebCore::ShadowValue::customCssText):

  • dom/MicroDataItemList.cpp:

(WebCore::MicroDataItemList::undefinedItemType):

  • editing/HTMLInterchange.cpp:

(WebCore::convertedSpaceString):

Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r126981 r126984  
     12012-08-29  Adam Barth  <abarth@webkit.org>
     2
     3        Improve string efficiency using StringBuilder and StringOperations
     4        https://bugs.webkit.org/show_bug.cgi?id=95304
     5
     6        Reviewed by Eric Seidel.
     7
     8        As recommended by http://trac.webkit.org/wiki/EfficientStrings.
     9
     10        * css/CSSLineBoxContainValue.cpp:
     11        (WebCore::CSSLineBoxContainValue::customCssText):
     12        * css/CSSPropertySourceData.cpp:
     13        (WebCore::CSSPropertySourceData::toString):
     14        * css/MediaList.cpp:
     15        (WebCore::MediaQuerySet::mediaText):
     16        * css/ShadowValue.cpp:
     17        (WebCore::ShadowValue::customCssText):
     18        * dom/MicroDataItemList.cpp:
     19        (WebCore::MicroDataItemList::undefinedItemType):
     20        * editing/HTMLInterchange.cpp:
     21        (WebCore::convertedSpaceString):
     22
    1232012-08-29  James Robinson  <jamesr@chromium.org>
    224
  • trunk/Source/WebCore/css/CSSLineBoxContainValue.cpp

    r124884 r126984  
    3030#include "MemoryInstrumentation.h"
    3131#include "PlatformString.h"
     32#include <wtf/text/StringBuilder.h>
    3233
    3334namespace WebCore {
     
    4142String CSSLineBoxContainValue::customCssText() const
    4243{
    43     String text("");
     44    StringBuilder text;
    4445
    4546    if (m_value & LineBoxContainBlock)
    46         text += "block";
     47        text.appendLiteral("block");
    4748    if (m_value & LineBoxContainInline) {
    4849        if (!text.isEmpty())
    49             text += " ";
    50         text += "inline";
     50            text.append(' ');
     51        text.appendLiteral("inline");
    5152    }
    5253    if (m_value & LineBoxContainFont) {
    5354        if (!text.isEmpty())
    54             text += " ";
    55         text += "font";
     55            text.append(' ');
     56        text.appendLiteral("font");
    5657    }
    5758    if (m_value & LineBoxContainGlyphs) {
    5859        if (!text.isEmpty())
    59             text += " ";
    60         text += "glyphs";
     60            text.append(' ');
     61        text.appendLiteral("glyphs");
    6162    }
    6263    if (m_value & LineBoxContainReplaced) {
    6364        if (!text.isEmpty())
    64             text += " ";
    65         text += "replaced";
     65            text.append(' ');
     66        text.appendLiteral("replaced");
    6667    }
    6768    if (m_value & LineBoxContainInlineBox) {
    6869        if (!text.isEmpty())
    69             text += " ";
    70         text += "inline-box";
     70            text.append(' ');
     71        text.appendLiteral("inline-box");
    7172    }
    7273
    73     return text;
     74    return text.toString();
    7475}
    7576
  • trunk/Source/WebCore/css/CSSPropertySourceData.cpp

    r126968 r126984  
    3939#include "PlatformString.h"
    4040#include <wtf/StaticConstructors.h>
     41#include <wtf/text/StringBuilder.h>
    4142#include <wtf/text/StringHash.h>
    4243
     
    9495        return String();
    9596
    96     String result = name;
    97     result += ": ";
    98     result += value;
     97    StringBuilder result;
     98    result.append(name);
     99    result.appendLiteral(": ");
     100    result.append(value);
    99101    if (important)
    100         result += importantSuffix;
    101     result += ";";
    102     return result;
     102        result.append(importantSuffix);
     103    result.append(';');
     104    return result.toString();
    103105}
    104106
  • trunk/Source/WebCore/css/MediaList.cpp

    r124884 r126984  
    2828#include "MediaQueryExp.h"
    2929#include "MemoryInstrumentation.h"
     30#include <wtf/text/StringBuilder.h>
    3031
    3132namespace WebCore {
     
    199200String MediaQuerySet::mediaText() const
    200201{
    201     String text("");
     202    StringBuilder text;
    202203   
    203204    bool first = true;
    204205    for (size_t i = 0; i < m_queries.size(); ++i) {
    205206        if (!first)
    206             text += ", ";
     207            text.appendLiteral(", ");
    207208        else
    208209            first = false;
    209         text += m_queries[i]->cssText();
    210     }
    211     return text;
     210        text.append(m_queries[i]->cssText());
     211    }
     212    return text.toString();
    212213}
    213214
  • trunk/Source/WebCore/css/ShadowValue.cpp

    r124884 r126984  
    2424#include "MemoryInstrumentation.h"
    2525#include "PlatformString.h"
     26#include <wtf/text/StringBuilder.h>
    2627
    2728namespace WebCore {
     
    4647String ShadowValue::customCssText() const
    4748{
    48     String text("");
     49    StringBuilder text;
    4950
    5051    if (color)
    51         text += color->cssText();
     52        text.append(color->cssText());
    5253    if (x) {
    5354        if (!text.isEmpty())
    54             text += " ";
    55         text += x->cssText();
     55            text.append(' ');
     56        text.append(x->cssText());
    5657    }
    5758    if (y) {
    5859        if (!text.isEmpty())
    59             text += " ";
    60         text += y->cssText();
     60            text.append(' ');
     61        text.append(y->cssText());
    6162    }
    6263    if (blur) {
    6364        if (!text.isEmpty())
    64             text += " ";
    65         text += blur->cssText();
     65            text.append(' ');
     66        text.append(blur->cssText());
    6667    }
    6768    if (spread) {
    6869        if (!text.isEmpty())
    69             text += " ";
    70         text += spread->cssText();
     70            text.append(' ');
     71        text.append(spread->cssText());
    7172    }
    7273    if (style) {
    7374        if (!text.isEmpty())
    74             text += " ";
    75         text += style->cssText();
     75            text.append(' ');
     76        text.append(style->cssText());
    7677    }
    7778
    78     return text;
     79    return text.toString();
    7980}
    8081
  • trunk/Source/WebCore/dom/MicroDataItemList.cpp

    r126968 r126984  
    4141const String& MicroDataItemList::undefinedItemType()
    4242{
    43     DEFINE_STATIC_LOCAL(String, undefinedItemTypeString, (""));
    44     // FIXME: Why not just return emptyString(); ?
    45     return undefinedItemTypeString;
     43    return emptyString();
    4644}
    4745
  • trunk/Source/WebCore/editing/HTMLInterchange.cpp

    r94640 r126984  
    3636namespace WebCore {
    3737
    38 namespace {
    39 
    40 String convertedSpaceString()
     38static String convertedSpaceString()
    4139{
    42     DEFINE_STATIC_LOCAL(String, convertedSpaceString, ());
    43     if (convertedSpaceString.isNull()) {
    44         convertedSpaceString = "<span class=\"";
    45         convertedSpaceString += AppleConvertedSpace;
    46         convertedSpaceString += "\">";
    47         convertedSpaceString.append(noBreakSpace);
    48         convertedSpaceString += "</span>";
    49     }
     40    DEFINE_STATIC_LOCAL(String, convertedSpaceString, (String(ASCIILiteral("<span class=\"" AppleConvertedSpace "\">")) + noBreakSpace + "</span>"));
    5041    return convertedSpaceString;
    5142}
    52 
    53 } // end anonymous namespace
    5443
    5544String convertHTMLTextToInterchangeFormat(const String& in, const Text* node)
Note: See TracChangeset for help on using the changeset viewer.