Ignore:
Timestamp:
Sep 6, 2011, 10:43:09 PM (14 years ago)
Author:
[email protected]
Message:

Replace usages of Vector<UChar> with existing StringBuilder
https://bugs.webkit.org/show_bug.cgi?id=67079

Patch by Xianzhu Wang <[email protected]> on 2011-09-06
Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

This is part of work to support 8-bit string buffers.
Adds StringBuilder::characters() because the original Vector<UChar>::data()
is widely used.
Sets the minimum size of buffer to 16 to prevent possible performance
regression. Further performance investigation should be done in
https://bugs.webkit.org/show_bug.cgi?id=67084.

  • wtf/Forward.h:
  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendUninitialized): Sets minimum buffer size to 16 bytes.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::operator[]):
(WTF::StringBuilder::characters): Added.

Source/WebCore:

No new tests. All existing unit tests and layout tests should run
as before.

  • css/CSSOMUtils.cpp:

(WebCore::appendCharacter):
(WebCore::serializeCharacter):
(WebCore::serializeCharacterAsCodePoint):
(WebCore::serializeIdentifier):
(WebCore::serializeString):

  • css/CSSOMUtils.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::cssText):

  • css/CSSStyleSelector.cpp:

(WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase):

  • css/CSSWrapShapes.cpp:

(WebCore::CSSWrapShapeRect::cssText):
(WebCore::CSSWrapShapeCircle::cssText):
(WebCore::CSSWrapShapeEllipse::cssText):
(WebCore::CSSWrapShapePolygon::cssText):

  • editing/HTMLInterchange.cpp:

(WebCore::convertHTMLTextToInterchangeFormat):

  • editing/MarkupAccumulator.cpp:

(WebCore::appendCharactersReplacingEntities):
(WebCore::MarkupAccumulator::serializeNodes):
(WebCore::MarkupAccumulator::appendStartTag):
(WebCore::MarkupAccumulator::appendEndTag):
(WebCore::MarkupAccumulator::concatenateMarkup):
(WebCore::MarkupAccumulator::appendAttributeValue):
(WebCore::MarkupAccumulator::appendCustomAttributes):
(WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
(WebCore::MarkupAccumulator::appendNodeValue):
(WebCore::MarkupAccumulator::appendNamespace):
(WebCore::MarkupAccumulator::appendText):
(WebCore::MarkupAccumulator::appendComment):
(WebCore::MarkupAccumulator::appendDocumentType):
(WebCore::MarkupAccumulator::appendProcessingInstruction):
(WebCore::MarkupAccumulator::appendElement):
(WebCore::MarkupAccumulator::appendOpenTag):
(WebCore::MarkupAccumulator::appendCloseTag):
(WebCore::MarkupAccumulator::appendAttribute):
(WebCore::MarkupAccumulator::appendCDATASection):
(WebCore::MarkupAccumulator::appendStartMarkup):
(WebCore::MarkupAccumulator::appendEndMarkup):

  • editing/MarkupAccumulator.h:
  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::StyledMarkupAccumulator::wrapWithNode):
(WebCore::StyledMarkupAccumulator::wrapWithStyleNode):
(WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
(WebCore::StyledMarkupAccumulator::takeResults):
(WebCore::StyledMarkupAccumulator::appendText):
(WebCore::urlToMarkup):

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::removeToken):

  • html/HTMLFontElement.cpp:

(WebCore::parseFontSize):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::strippedPlaceholder):

  • html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::emitRule):

  • html/parser/CSSPreloadScanner.h:
  • html/parser/HTMLEntityParser.cpp:

(WebCore::consumeHTMLEntity):

  • html/parser/HTMLEntityParser.h:
  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseHTMLInteger):
(WebCore::parseHTMLNonNegativeInteger):

  • html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::processEntity):
(WebCore::HTMLTokenizer::nextToken):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::giveRemainingTo):
(WebCore::HTMLTreeBuilder::defaultForInTableText):

  • html/parser/HTMLTreeBuilder.h:
  • inspector/InspectorValues.cpp:

(WebCore::InspectorValue::toJSONString):
(WebCore::InspectorValue::writeJSON):
(WebCore::InspectorBasicValue::writeJSON):
(WebCore::InspectorString::writeJSON):
(WebCore::InspectorObject::writeJSON):
(WebCore::InspectorArray::writeJSON):

  • inspector/InspectorValues.h:
  • loader/CrossOriginAccessControl.cpp:

(WebCore::createAccessControlPreflightRequest):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store):

  • page/Chrome.cpp:

(WebCore::Chrome::setToolTip):

  • page/PageSerializer.cpp:

(WebCore::SerializerMarkupAccumulator::appendText):
(WebCore::SerializerMarkupAccumulator::appendElement):
(WebCore::SerializerMarkupAccumulator::appendCustomAttributes):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::toString):

  • platform/KURL.cpp:

(WebCore::KURL::deprecatedString):
(WebCore::decodeURLEscapeSequences):

  • platform/LinkHash.cpp:

(WebCore::squeezeOutNullCharacters):
(WebCore::cleanSlashDotDotSlashes):
(WebCore::mergeDoubleSlashes):
(WebCore::cleanSlashDotSlashes):
(WebCore::cleanPath):
(WebCore::visitedURLInline):
(WebCore::visitedURL):
(WebCore::visitedLinkHash):

  • platform/LinkHash.h:
  • platform/gtk/DataObjectGtk.cpp:

(WebCore::DataObjectGtk::setURL):

  • platform/network/HTTPParsers.cpp:

(WebCore::extractMIMETypeFromMediaType):

  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::decode):

  • platform/text/TextStream.cpp:

(WebCore::TextStream::operator<<):
(WebCore::TextStream::release):

  • platform/text/TextStream.h:
  • plugins/PluginStream.cpp:

(WebCore::PluginStream::startStream):

  • rendering/InlineTextBox.cpp:

(WebCore::adjustCharactersAndLengthForHyphen):

  • rendering/InlineTextBox.h:

(WebCore::BufferForAppendingHyphen::BufferForAppendingHyphen):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::markerTextWithSuffix):

  • rendering/RenderListMarker.cpp:

(WebCore::toSymbolic):
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::suffix):

  • rendering/RenderTreeAsText.cpp:

(WebCore::quoteAndEscapeNonPrintables):

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

  • storage/IDBLevelDBCoding.cpp:

(WebCore::IDBLevelDBCoding::decodeString):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::getAllResponseHeaders):

  • xml/XPathFunctions.cpp:

(WebCore::XPath::FunId::evaluate):
(WebCore::XPath::FunConcat::evaluate):

  • xml/XPathUtil.cpp:

(WebCore::XPath::stringValue):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::writeToStringBuilder):
(WebCore::saveResultToString):

  • xml/parser/CharacterReferenceParserInlineMethods.h:

(WebCore::unconsumeCharacters):
(WebCore::consumeCharacterReference):

  • xml/parser/XMLCharacterReferenceParser.cpp:

(WebCore::consumeXMLCharacterReference):

  • xml/parser/XMLCharacterReferenceParser.h:
  • xml/parser/XMLTokenizer.cpp:

(WebCore::XMLTokenizer::nextToken):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r94632 r94640  
     12011-09-06  Xianzhu Wang  <[email protected]>
     2
     3        Replace usages of Vector<UChar> with existing StringBuilder
     4        https://bugs.webkit.org/show_bug.cgi?id=67079
     5
     6        Reviewed by Gavin Barraclough.
     7
     8        This is part of work to support 8-bit string buffers.
     9        Adds StringBuilder::characters() because the original Vector<UChar>::data()
     10        is widely used.
     11        Sets the minimum size of buffer to 16 to prevent possible performance
     12        regression. Further performance investigation should be done in
     13        https://bugs.webkit.org/show_bug.cgi?id=67084.
     14
     15        * wtf/Forward.h:
     16        * wtf/text/StringBuilder.cpp:
     17        (WTF::StringBuilder::appendUninitialized): Sets minimum buffer size to 16 bytes.
     18        * wtf/text/StringBuilder.h:
     19        (WTF::StringBuilder::operator[]):
     20        (WTF::StringBuilder::characters): Added.
     21
    1222011-09-06  Mark Hahnenberg  <[email protected]>
    223
Note: See TracChangeset for help on using the changeset viewer.