<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[165848] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/165848">165848</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2014-03-18 14:57:44 -0700 (Tue, 18 Mar 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Reduce use of deprecatedCharacters in WebCore
https://bugs.webkit.org/show_bug.cgi?id=130318
Reviewed by Andreas Kling.
Source/WebCore:
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPathLexer::IDBKeyPathLexer): Use StringView for parsing.
(WebCore::IDBKeyPathLexer::lex): Ditto.
(WebCore::IDBKeyPathLexer::lexIdentifier): Ditto.
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeString): Index directly into string instead of
using deprecatedCharacters.
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol): Use
StringView::getCharactersWithUpconvert.
(WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions): Ditto.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Use operator NSString * instead of explicitly creating an NSString.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::writeLittleEndianUInt16): Added.
(WebCore::CloneSerializer::serialize): Added a separate code path for 8-bit strings.
(WebCore::CloneSerializer::write): Ditto.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
Use operator NSString * instead of explicitly creating an NSString.
* dom/Document.cpp:
(WebCore::Document::parseQualifiedName): Index directly into string instead of
using deprecatedCharacters.
* editing/CompositeEditCommand.cpp:
(WebCore::containsOnlyWhitespace): Ditto.
* editing/SmartReplace.cpp:
(WebCore::addAllCodePoints): Ditto.
(WebCore::getSmartSet): Use StringView::upconvertedCharacters.
* editing/TextIterator.cpp:
(WebCore::foldQuoteMarksAndSoftHyphens): Changed to return a value so it can be
used in initialization rather than assignment.
(WebCore::SearchBuffer::SearchBuffer): Use StringView::upconvertedCharacters.
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText): Index directly into string instead of using
deprecatedCharacters.
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::characterAfter): Ditto.
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph): Ditto.
(WebCore::endOfParagraph): Ditto.
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::append): Pass a StringView to TextEncoding::encode.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::parseToDateComponents): Use
StringView::upconvertedCharacters.
* html/FormDataList.cpp:
(WebCore::FormDataList::appendString): Pass a StringView to TextEncoding::encode.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::normalizeSpaces): Use StringView::getCharactersWithUpconvert.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::stripLeadingAndTrailingHTMLSpaces): Use characters16 for a code path
that already handled 8-bit characters separately.
(WebCore::parseHTMLNonNegativeInteger): Ditto.
(WebCore::parseDescriptors): Added an 8-bit code path.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Index directly into
string instead of using deprecatedCharacters.
* inspector/InspectorStyleTextEditor.cpp:
(WebCore::InspectorStyleTextEditor::insertProperty): Ditto.
(WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
* page/ContentSecurityPolicy.cpp:
(WebCore::isSourceListNone): Use StringView::upconvertedCharacters.
(WebCore::CSPSourceList::parse): Ditto.
(WebCore::NonceDirective::parse): Ditto.
(WebCore::MediaListDirective::parse): Ditto.
(WebCore::CSPDirectiveList::parse): Ditto.
(WebCore::CSPDirectiveList::parseReportURI): Ditto.
(WebCore::CSPDirectiveList::parseReflectedXSS): Ditto.
(WebCore::ContentSecurityPolicy::didReceiveHeader): Ditto.
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame): Pass a StringView into
TextEncoding::encode.
(WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
* platform/Length.cpp:
(WebCore::countCharacter): Index directly into string instead of using
deprecatedCharacters. Also changed to take a StringImpl&.
(WebCore::newCoordsArray): Ditto. Call countCharacter the new way, and
use StringView::upconvertedCharacters.
(WebCore::newLengthArray): Ditto.
* platform/LinkHash.cpp:
(WebCore::visitedLinkHash): Use characters16 for the 16-bit path.
Also removed unused visitedURL function.
* platform/LinkHash.h: Removed unused visitedURL function.
* platform/SharedBuffer.cpp:
(WebCore::utf8Buffer): Added an 8-bit code path.
* platform/URL.cpp:
(WebCore::URL::port): Ditto.
(WebCore::encodeRelativeString): Use StringView to call TextEncoding::encode.
* platform/graphics/Color.cpp:
(WebCore::Color::parseHexColor): Use characters16 in the 16-bit path.
(WebCore::Color::Color): Ditto.
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
(WebCore::harfBuzzGetGlyph): Use StringView to call TextEncoding::encode.
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer): Use StringView::getCharactersWithUpconvert.
(WebCore::rightTruncateToBuffer): Ditto.
(WebCore::rightClipToCharacterBuffer): Ditto.
(WebCore::rightClipToWordBuffer): Ditto.
(WebCore::leftTruncateToBuffer): Ditto.
(WebCore::truncateString): Ditto.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun): Use characters16 in the 16-bit code path.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
Use StringView::upconvertedCharacters.
* platform/network/DataURL.cpp:
(WebCore::handleDataURL): Use StringView to call TextEncoding::encode.
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addFilenameToMultiPartHeader): Ditto.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindBlob): Use StringView::upconvertedCharacters.
(WebCore::SQLiteStatement::bindText): Ditto.
* platform/text/DecodeEscapeSequences.h:
(WebCore::Unicode16BitEscapeSequence::decodeRun): Changed to take a StringView.
(WebCore::URLEscapeSequence::decodeRun): Ditto.
(WebCore::decodeEscapeSequences): Pass StringView to decodeRun.
* platform/text/Hyphenation.cpp:
(WebCore::lastHyphenLocation): Take a StringView.
* platform/text/Hyphenation.h: Make lastHyphenLocation take a StringView.
* platform/text/TextBreakIterator.cpp:
(WebCore::initializeIteratorWithRules): Use StringView::upconvertedCharacters.
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode): Use StringView::upconvertedCharacters.
Change argument type to StringView.
* platform/text/TextEncoding.h: Ditto.
* platform/text/TextEncodingRegistry.cpp:
(WebCore::atomicCanonicalTextEncodingName): Use characters16 for the 16-bit path.
* platform/text/cf/HyphenationCF.cpp:
(WebCore::lastHyphenLocation): Use StringView::text.createCFStringWithoutCopying.
Change argument type to StringView.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun): Use characters16 for the 16-bit path.
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::width): Removed check for null characters pointer,
since the pointer will never be null, and even if it was there would be no need
for an early exit.
* rendering/RenderText.cpp:
(WebCore::maxWordFragmentWidth): Take a StringView.
(WebCore::RenderText::computePreferredLogicalWidths): Pass in a StringView.
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::tryHyphenating): Ditto.
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Use
StringView::upconvertedCharacters.
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::SVGTextMetrics): Use String::substring.
* svg/SVGAngle.cpp:
(WebCore::SVGAngle::setValueAsString): Use StringView::upconvertedCharacters.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::parsePoint): Ditto.
* svg/SVGAnimationElement.cpp:
(WebCore::parseKeySplines): Ditto.
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::parseViewBox): Ditto.
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection): Pass StringView to
createStringWIthMirroredCharacters.
(WebCore::createStringWithMirroredCharacters): Changed to use StringView and
use indexing into that instead of a characters pointer.
* svg/SVGFontData.h: Removed createStringWithMirroredCharacters member function,
since it has nothing to do with the SVGFontData object. Now it's just a private
helper function in the SVGFontData.cpp source file.
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::registerLigaturesInGlyphCache): Index into the string
instead of using deprecatedCharacters.
* svg/SVGGlyphMap.h:
(WebCore::SVGGlyphMap::addGlyph): Use StringView::upconvertedCharacters.
(WebCore::SVGGlyphMap::collectGlyphsForString): Ditto.
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::parseAttribute): Ditto.
* svg/SVGLength.cpp:
(WebCore::SVGLength::setValueAsString): Ditto.
* svg/SVGLengthList.cpp:
(WebCore::SVGLengthList::parse): Ditto.
* svg/SVGNumberList.cpp:
(WebCore::SVGNumberList::parse): Ditto.
* svg/SVGParserUtilities.cpp:
(WebCore::parseNumberFromString): Ditto.
(WebCore::parseNumberOptionalNumber): Ditto.
(WebCore::parseRect): Ditto.
(WebCore::pointsListFromSVGData): Ditto.
(WebCore::parseGlyphName): Ditto.
(WebCore::parseKerningUnicodeString): Ditto.
(WebCore::parseDelimitedString): Ditto.
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::parse): Ditto.
* svg/SVGStringList.cpp:
(WebCore::SVGStringList::parse): Ditto.
* svg/SVGTransformList.cpp:
(WebCore::SVGTransformList::parse): Ditto.
* svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformType): Ditto.
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::parseViewSpec): Ditto.
* svg/SVGZoomAndPan.h:
(WebCore::SVGZoomAndPan::parseAttribute): Ditto.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send): Pass a StringView to TextEncoding::encode.
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::parseString): Use StringView::upconvertedCharacters.
Source/WTF:
* wtf/text/WTFString.h: Export another overload of charactersToFloat since it's used
in WebCore now.
* wtf/text/cf/StringViewCF.cpp: Change so this can build on Windows.
* WTF.vcxproj/WTF.vcxproj: Added StringViewCF.cpp.
* WTF.vcxproj/WTF.vcxproj.filters: Added StringViewCF.cpp.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFWTFvcxprojWTFvcxproj">trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj</a></li>
<li><a href="#trunkSourceWTFWTFvcxprojWTFvcxprojfilters">trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj.filters</a></li>
<li><a href="#trunkSourceWTFwtftextWTFStringh">trunk/Source/WTF/wtf/text/WTFString.h</a></li>
<li><a href="#trunkSourceWTFwtftextcfStringViewCFcpp">trunk/Source/WTF/wtf/text/cf/StringViewCF.cpp</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBKeyPathcpp">trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbleveldbIDBLevelDBCodingcpp">trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelClientWrappercpp">trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm">trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsjsSerializedScriptValuecpp">trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcWebScriptObjectmm">trunk/Source/WebCore/bindings/objc/WebScriptObject.mm</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSmartReplacecpp">trunk/Source/WebCore/editing/SmartReplace.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextIteratorcpp">trunk/Source/WebCore/editing/TextIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTypingCommandcpp">trunk/Source/WebCore/editing/TypingCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingVisiblePositioncpp">trunk/Source/WebCore/editing/VisiblePosition.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingVisibleUnitscpp">trunk/Source/WebCore/editing/VisibleUnits.cpp</a></li>
<li><a href="#trunkSourceWebCorefileapiWebKitBlobBuildercpp">trunk/Source/WebCore/fileapi/WebKitBlobBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlBaseDateAndTimeInputTypecpp">trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFormDataListcpp">trunk/Source/WebCore/html/FormDataList.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserIdiomscpp">trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleSheetcpp">trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorStyleTextEditorcpp">trunk/Source/WebCore/inspector/InspectorStyleTextEditor.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContentSecurityPolicycpp">trunk/Source/WebCore/page/ContentSecurityPolicy.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializercpp">trunk/Source/WebCore/page/PageSerializer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLengthcpp">trunk/Source/WebCore/platform/Length.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLinkHashcpp">trunk/Source/WebCore/platform/LinkHash.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLinkHashh">trunk/Source/WebCore/platform/LinkHash.h</a></li>
<li><a href="#trunkSourceWebCoreplatformSharedBuffercpp">trunk/Source/WebCore/platform/SharedBuffer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformURLcpp">trunk/Source/WebCore/platform/URL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsColorcpp">trunk/Source/WebCore/platform/graphics/Color.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsStringTruncatorcpp">trunk/Source/WebCore/platform/graphics/StringTruncator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsTextRunh">trunk/Source/WebCore/platform/graphics/TextRun.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsharfbuzzHarfBuzzFaceCairocpp">trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkDataURLcpp">trunk/Source/WebCore/platform/network/DataURL.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkFormDataBuildercpp">trunk/Source/WebCore/platform/network/FormDataBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformsqlSQLiteStatementcpp">trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextDecodeEscapeSequencesh">trunk/Source/WebCore/platform/text/DecodeEscapeSequences.h</a></li>
<li><a href="#trunkSourceWebCoreplatformtextHyphenationcpp">trunk/Source/WebCore/platform/text/Hyphenation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextHyphenationh">trunk/Source/WebCore/platform/text/Hyphenation.h</a></li>
<li><a href="#trunkSourceWebCoreplatformtextTextBreakIteratorcpp">trunk/Source/WebCore/platform/text/TextBreakIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextTextEncodingcpp">trunk/Source/WebCore/platform/text/TextEncoding.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextTextEncodingh">trunk/Source/WebCore/platform/text/TextEncoding.h</a></li>
<li><a href="#trunkSourceWebCoreplatformtextTextEncodingRegistrycpp">trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextcfHyphenationCFcpp">trunk/Source/WebCore/platform/text/cf/HyphenationCF.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderCombineTextcpp">trunk/Source/WebCore/rendering/RenderCombineText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextcpp">trunk/Source/WebCore/rendering/RenderText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderinglineBreakingContextInlineHeadersh">trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextLayoutEnginecpp">trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextMetricscpp">trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAnglecpp">trunk/Source/WebCore/svg/SVGAngle.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAnimateMotionElementcpp">trunk/Source/WebCore/svg/SVGAnimateMotionElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGAnimationElementcpp">trunk/Source/WebCore/svg/SVGAnimationElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFitToViewBoxcpp">trunk/Source/WebCore/svg/SVGFitToViewBox.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontDatacpp">trunk/Source/WebCore/svg/SVGFontData.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontDatah">trunk/Source/WebCore/svg/SVGFontData.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontElementcpp">trunk/Source/WebCore/svg/SVGFontElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGGlyphMaph">trunk/Source/WebCore/svg/SVGGlyphMap.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGGlyphRefElementcpp">trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGLengthcpp">trunk/Source/WebCore/svg/SVGLength.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGLengthListcpp">trunk/Source/WebCore/svg/SVGLengthList.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGNumberListcpp">trunk/Source/WebCore/svg/SVGNumberList.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGParserUtilitiescpp">trunk/Source/WebCore/svg/SVGParserUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPreserveAspectRatiocpp">trunk/Source/WebCore/svg/SVGPreserveAspectRatio.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGStringListcpp">trunk/Source/WebCore/svg/SVGStringList.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGTransformListcpp">trunk/Source/WebCore/svg/SVGTransformList.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGTransformablecpp">trunk/Source/WebCore/svg/SVGTransformable.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGViewSpeccpp">trunk/Source/WebCore/svg/SVGViewSpec.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGZoomAndPanh">trunk/Source/WebCore/svg/SVGZoomAndPan.h</a></li>
<li><a href="#trunkSourceWebCorexmlXMLHttpRequestcpp">trunk/Source/WebCore/xml/XMLHttpRequest.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXSLStyleSheetLibxsltcpp">trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WTF/ChangeLog        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-03-18 Darin Adler <darin@apple.com>
+
+ Reduce use of deprecatedCharacters in WebCore
+ https://bugs.webkit.org/show_bug.cgi?id=130318
+
+ Reviewed by Andreas Kling.
+
+ * wtf/text/WTFString.h: Export another overload of charactersToFloat since it's used
+ in WebCore now.
+
+ * wtf/text/cf/StringViewCF.cpp: Change so this can build on Windows.
+
+ * WTF.vcxproj/WTF.vcxproj: Added StringViewCF.cpp.
+ * WTF.vcxproj/WTF.vcxproj.filters: Added StringViewCF.cpp.
+
</ins><span class="cx"> 2014-03-18 Filip Pizlo <fpizlo@apple.com>
</span><span class="cx">
</span><span class="cx"> More FTL enabling.
</span></span></pre></div>
<a id="trunkSourceWTFWTFvcxprojWTFvcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -129,6 +129,7 @@
</span><span class="cx"> <ClCompile Include="..\wtf\text\cf\AtomicStringCF.cpp" />
</span><span class="cx"> <ClCompile Include="..\wtf\text\cf\StringCF.cpp" />
</span><span class="cx"> <ClCompile Include="..\wtf\text\cf\StringImplCF.cpp" />
</span><ins>+ <ClCompile Include="..\wtf\text\cf\StringViewCF.cpp" />
</ins><span class="cx"> <ClCompile Include="..\wtf\Threading.cpp" />
</span><span class="cx"> <ClCompile Include="..\wtf\ThreadingWin.cpp" />
</span><span class="cx"> <ClCompile Include="..\wtf\threadspecificWin.cpp" />
</span></span></pre></div>
<a id="trunkSourceWTFWTFvcxprojWTFvcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj.filters (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj.filters        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj.filters        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -84,6 +84,12 @@
</span><span class="cx"> <ClCompile Include="..\wtf\text\cf\StringCF.cpp">
</span><span class="cx"> <Filter>text</Filter>
</span><span class="cx"> </ClCompile>
</span><ins>+ <ClCompile Include="..\wtf\text\cf\StringImplCF.cpp">
+ <Filter>text</Filter>
+ </ClCompile>
+ <ClCompile Include="..\wtf\text\cf\StringViewCF.cpp">
+ <Filter>text</Filter>
+ </ClCompile>
</ins><span class="cx"> <ClCompile Include="..\wtf\win\MainThreadWin.cpp">
</span><span class="cx"> <Filter>win</Filter>
</span><span class="cx"> </ClCompile>
</span><span class="lines">@@ -237,9 +243,6 @@
</span><span class="cx"> <ClCompile Include="..\wtf\win\RunLoopWin.cpp">
</span><span class="cx"> <Filter>win</Filter>
</span><span class="cx"> </ClCompile>
</span><del>- <ClCompile Include="..\wtf\text\cf\StringImplCF.cpp">
- <Filter>text</Filter>
- </ClCompile>
</del><span class="cx"> <ClCompile Include="..\wtf\FastBitVector.cpp" />
</span><span class="cx"> </ItemGroup>
</span><span class="cx"> <ItemGroup>
</span></span></pre></div>
<a id="trunkSourceWTFwtftextWTFStringh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/WTFString.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/WTFString.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WTF/wtf/text/WTFString.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> // It would be better if these were more consistent with the above functions instead.
</span><span class="cx"> WTF_EXPORT_STRING_API double charactersToDouble(const LChar*, size_t, bool* ok = 0);
</span><span class="cx"> WTF_EXPORT_STRING_API double charactersToDouble(const UChar*, size_t, bool* ok = 0);
</span><del>-float charactersToFloat(const LChar*, size_t, bool* ok = 0);
</del><ins>+WTF_EXPORT_STRING_API float charactersToFloat(const LChar*, size_t, bool* ok = 0);
</ins><span class="cx"> WTF_EXPORT_STRING_API float charactersToFloat(const UChar*, size_t, bool* ok = 0);
</span><span class="cx"> WTF_EXPORT_STRING_API float charactersToFloat(const LChar*, size_t, size_t& parsedLength);
</span><span class="cx"> WTF_EXPORT_STRING_API float charactersToFloat(const UChar*, size_t, size_t& parsedLength);
</span></span></pre></div>
<a id="trunkSourceWTFwtftextcfStringViewCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/cf/StringViewCF.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/cf/StringViewCF.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WTF/wtf/text/cf/StringViewCF.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -23,11 +23,14 @@
</span><span class="cx"> * THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx"> */
</span><span class="cx">
</span><del>-#import "config.h"
-#import "StringView.h"
</del><ins>+#include "config.h"
+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><del>-#import "RetainPtr.h"
</del><ins>+#if USE(CF)
</ins><span class="cx">
</span><ins>+#include <CoreFoundation/CoreFoundation.h>
+#include <wtf/RetainPtr.h>
+
</ins><span class="cx"> namespace WTF {
</span><span class="cx">
</span><span class="cx"> RetainPtr<CFStringRef> StringView::createCFStringWithoutCopying() const
</span><span class="lines">@@ -35,7 +38,9 @@
</span><span class="cx"> if (is8Bit())
</span><span class="cx"> return adoptCF(CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, characters8(), length(), kCFStringEncodingISOLatin1, false, kCFAllocatorNull));
</span><span class="cx">
</span><del>- return adoptCF(CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, characters16(), length(), kCFAllocatorNull));
</del><ins>+ return adoptCF(CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, reinterpret_cast<const UniChar*>(characters16()), length(), kCFAllocatorNull));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span><ins>+
+#endif // USE(CF)
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/ChangeLog        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -1,3 +1,256 @@
</span><ins>+2014-03-18 Darin Adler <darin@apple.com>
+
+ Reduce use of deprecatedCharacters in WebCore
+ https://bugs.webkit.org/show_bug.cgi?id=130318
+
+ Reviewed by Andreas Kling.
+
+ * Modules/indexeddb/IDBKeyPath.cpp:
+ (WebCore::IDBKeyPathLexer::IDBKeyPathLexer): Use StringView for parsing.
+ (WebCore::IDBKeyPathLexer::lex): Ditto.
+ (WebCore::IDBKeyPathLexer::lexIdentifier): Ditto.
+
+ * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
+ (WebCore::IDBLevelDBCoding::encodeString): Index directly into string instead of
+ using deprecatedCharacters.
+
+ * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
+ (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol): Use
+ StringView::getCharactersWithUpconvert.
+ (WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions): Ditto.
+
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
+ Use operator NSString * instead of explicitly creating an NSString.
+
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore::writeLittleEndianUInt16): Added.
+ (WebCore::CloneSerializer::serialize): Added a separate code path for 8-bit strings.
+ (WebCore::CloneSerializer::write): Ditto.
+
+ * bindings/objc/WebScriptObject.mm:
+ (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
+ Use operator NSString * instead of explicitly creating an NSString.
+
+ * dom/Document.cpp:
+ (WebCore::Document::parseQualifiedName): Index directly into string instead of
+ using deprecatedCharacters.
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::containsOnlyWhitespace): Ditto.
+ * editing/SmartReplace.cpp:
+ (WebCore::addAllCodePoints): Ditto.
+ (WebCore::getSmartSet): Use StringView::upconvertedCharacters.
+
+ * editing/TextIterator.cpp:
+ (WebCore::foldQuoteMarksAndSoftHyphens): Changed to return a value so it can be
+ used in initialization rather than assignment.
+ (WebCore::SearchBuffer::SearchBuffer): Use StringView::upconvertedCharacters.
+
+ * editing/TypingCommand.cpp:
+ (WebCore::TypingCommand::insertText): Index directly into string instead of using
+ deprecatedCharacters.
+ * editing/VisiblePosition.cpp:
+ (WebCore::VisiblePosition::characterAfter): Ditto.
+ * editing/VisibleUnits.cpp:
+ (WebCore::startOfParagraph): Ditto.
+ (WebCore::endOfParagraph): Ditto.
+
+ * fileapi/WebKitBlobBuilder.cpp:
+ (WebCore::BlobBuilder::append): Pass a StringView to TextEncoding::encode.
+
+ * html/BaseDateAndTimeInputType.cpp:
+ (WebCore::BaseDateAndTimeInputType::parseToDateComponents): Use
+ StringView::upconvertedCharacters.
+
+ * html/FormDataList.cpp:
+ (WebCore::FormDataList::appendString): Pass a StringView to TextEncoding::encode.
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::normalizeSpaces): Use StringView::getCharactersWithUpconvert.
+
+ * html/parser/HTMLParserIdioms.cpp:
+ (WebCore::stripLeadingAndTrailingHTMLSpaces): Use characters16 for a code path
+ that already handled 8-bit characters separately.
+ (WebCore::parseHTMLNonNegativeInteger): Ditto.
+ (WebCore::parseDescriptors): Added an 8-bit code path.
+
+ * inspector/InspectorStyleSheet.cpp:
+ (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Index directly into
+ string instead of using deprecatedCharacters.
+ * inspector/InspectorStyleTextEditor.cpp:
+ (WebCore::InspectorStyleTextEditor::insertProperty): Ditto.
+ (WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
+
+ * page/ContentSecurityPolicy.cpp:
+ (WebCore::isSourceListNone): Use StringView::upconvertedCharacters.
+ (WebCore::CSPSourceList::parse): Ditto.
+ (WebCore::NonceDirective::parse): Ditto.
+ (WebCore::MediaListDirective::parse): Ditto.
+ (WebCore::CSPDirectiveList::parse): Ditto.
+ (WebCore::CSPDirectiveList::parseReportURI): Ditto.
+ (WebCore::CSPDirectiveList::parseReflectedXSS): Ditto.
+ (WebCore::ContentSecurityPolicy::didReceiveHeader): Ditto.
+
+ * page/PageSerializer.cpp:
+ (WebCore::PageSerializer::serializeFrame): Pass a StringView into
+ TextEncoding::encode.
+ (WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
+
+ * platform/Length.cpp:
+ (WebCore::countCharacter): Index directly into string instead of using
+ deprecatedCharacters. Also changed to take a StringImpl&.
+ (WebCore::newCoordsArray): Ditto. Call countCharacter the new way, and
+ use StringView::upconvertedCharacters.
+ (WebCore::newLengthArray): Ditto.
+
+ * platform/LinkHash.cpp:
+ (WebCore::visitedLinkHash): Use characters16 for the 16-bit path.
+ Also removed unused visitedURL function.
+ * platform/LinkHash.h: Removed unused visitedURL function.
+
+ * platform/SharedBuffer.cpp:
+ (WebCore::utf8Buffer): Added an 8-bit code path.
+ * platform/URL.cpp:
+ (WebCore::URL::port): Ditto.
+ (WebCore::encodeRelativeString): Use StringView to call TextEncoding::encode.
+
+ * platform/graphics/Color.cpp:
+ (WebCore::Color::parseHexColor): Use characters16 in the 16-bit path.
+ (WebCore::Color::Color): Ditto.
+
+ * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
+ (WebCore::harfBuzzGetGlyph): Use StringView to call TextEncoding::encode.
+
+ * platform/graphics/StringTruncator.cpp:
+ (WebCore::centerTruncateToBuffer): Use StringView::getCharactersWithUpconvert.
+ (WebCore::rightTruncateToBuffer): Ditto.
+ (WebCore::rightClipToCharacterBuffer): Ditto.
+ (WebCore::rightClipToWordBuffer): Ditto.
+ (WebCore::leftTruncateToBuffer): Ditto.
+ (WebCore::truncateString): Ditto.
+
+ * platform/graphics/TextRun.h:
+ (WebCore::TextRun::TextRun): Use characters16 in the 16-bit code path.
+
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
+ Use StringView::upconvertedCharacters.
+
+ * platform/network/DataURL.cpp:
+ (WebCore::handleDataURL): Use StringView to call TextEncoding::encode.
+ * platform/network/FormDataBuilder.cpp:
+ (WebCore::FormDataBuilder::addFilenameToMultiPartHeader): Ditto.
+
+ * platform/sql/SQLiteStatement.cpp:
+ (WebCore::SQLiteStatement::bindBlob): Use StringView::upconvertedCharacters.
+ (WebCore::SQLiteStatement::bindText): Ditto.
+
+ * platform/text/DecodeEscapeSequences.h:
+ (WebCore::Unicode16BitEscapeSequence::decodeRun): Changed to take a StringView.
+ (WebCore::URLEscapeSequence::decodeRun): Ditto.
+ (WebCore::decodeEscapeSequences): Pass StringView to decodeRun.
+
+ * platform/text/Hyphenation.cpp:
+ (WebCore::lastHyphenLocation): Take a StringView.
+ * platform/text/Hyphenation.h: Make lastHyphenLocation take a StringView.
+
+ * platform/text/TextBreakIterator.cpp:
+ (WebCore::initializeIteratorWithRules): Use StringView::upconvertedCharacters.
+
+ * platform/text/TextEncoding.cpp:
+ (WebCore::TextEncoding::encode): Use StringView::upconvertedCharacters.
+ Change argument type to StringView.
+ * platform/text/TextEncoding.h: Ditto.
+
+ * platform/text/TextEncodingRegistry.cpp:
+ (WebCore::atomicCanonicalTextEncodingName): Use characters16 for the 16-bit path.
+
+ * platform/text/cf/HyphenationCF.cpp:
+ (WebCore::lastHyphenLocation): Use StringView::text.createCFStringWithoutCopying.
+ Change argument type to StringView.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::constructTextRun): Use characters16 for the 16-bit path.
+
+ * rendering/RenderCombineText.cpp:
+ (WebCore::RenderCombineText::width): Removed check for null characters pointer,
+ since the pointer will never be null, and even if it was there would be no need
+ for an early exit.
+
+ * rendering/RenderText.cpp:
+ (WebCore::maxWordFragmentWidth): Take a StringView.
+ (WebCore::RenderText::computePreferredLogicalWidths): Pass in a StringView.
+ * rendering/line/BreakingContextInlineHeaders.h:
+ (WebCore::tryHyphenating): Ditto.
+
+ * rendering/svg/SVGTextLayoutEngine.cpp:
+ (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Use
+ StringView::upconvertedCharacters.
+
+ * rendering/svg/SVGTextMetrics.cpp:
+ (WebCore::SVGTextMetrics::SVGTextMetrics): Use String::substring.
+
+ * svg/SVGAngle.cpp:
+ (WebCore::SVGAngle::setValueAsString): Use StringView::upconvertedCharacters.
+ * svg/SVGAnimateMotionElement.cpp:
+ (WebCore::parsePoint): Ditto.
+ * svg/SVGAnimationElement.cpp:
+ (WebCore::parseKeySplines): Ditto.
+ * svg/SVGFitToViewBox.cpp:
+ (WebCore::SVGFitToViewBox::parseViewBox): Ditto.
+
+ * svg/SVGFontData.cpp:
+ (WebCore::SVGFontData::applySVGGlyphSelection): Pass StringView to
+ createStringWIthMirroredCharacters.
+ (WebCore::createStringWithMirroredCharacters): Changed to use StringView and
+ use indexing into that instead of a characters pointer.
+
+ * svg/SVGFontData.h: Removed createStringWithMirroredCharacters member function,
+ since it has nothing to do with the SVGFontData object. Now it's just a private
+ helper function in the SVGFontData.cpp source file.
+
+ * svg/SVGFontElement.cpp:
+ (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Index into the string
+ instead of using deprecatedCharacters.
+
+ * svg/SVGGlyphMap.h:
+ (WebCore::SVGGlyphMap::addGlyph): Use StringView::upconvertedCharacters.
+ (WebCore::SVGGlyphMap::collectGlyphsForString): Ditto.
+ * svg/SVGGlyphRefElement.cpp:
+ (WebCore::SVGGlyphRefElement::parseAttribute): Ditto.
+ * svg/SVGLength.cpp:
+ (WebCore::SVGLength::setValueAsString): Ditto.
+ * svg/SVGLengthList.cpp:
+ (WebCore::SVGLengthList::parse): Ditto.
+ * svg/SVGNumberList.cpp:
+ (WebCore::SVGNumberList::parse): Ditto.
+ * svg/SVGParserUtilities.cpp:
+ (WebCore::parseNumberFromString): Ditto.
+ (WebCore::parseNumberOptionalNumber): Ditto.
+ (WebCore::parseRect): Ditto.
+ (WebCore::pointsListFromSVGData): Ditto.
+ (WebCore::parseGlyphName): Ditto.
+ (WebCore::parseKerningUnicodeString): Ditto.
+ (WebCore::parseDelimitedString): Ditto.
+ * svg/SVGPreserveAspectRatio.cpp:
+ (WebCore::SVGPreserveAspectRatio::parse): Ditto.
+ * svg/SVGStringList.cpp:
+ (WebCore::SVGStringList::parse): Ditto.
+ * svg/SVGTransformList.cpp:
+ (WebCore::SVGTransformList::parse): Ditto.
+ * svg/SVGTransformable.cpp:
+ (WebCore::SVGTransformable::parseTransformType): Ditto.
+ * svg/SVGViewSpec.cpp:
+ (WebCore::SVGViewSpec::parseViewSpec): Ditto.
+ * svg/SVGZoomAndPan.h:
+ (WebCore::SVGZoomAndPan::parseAttribute): Ditto.
+
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::send): Pass a StringView to TextEncoding::encode.
+
+ * xml/XSLStyleSheetLibxslt.cpp:
+ (WebCore::XSLStyleSheet::parseString): Use StringView::upconvertedCharacters.
+
</ins><span class="cx"> 2014-03-18 Bem Jones-Bey <bjonesbe@adobe.com>
</span><span class="cx">
</span><span class="cx"> LayoutBox is a terrible name
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBKeyPathcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBKeyPath.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -45,8 +45,7 @@
</span><span class="cx">
</span><span class="cx"> explicit IDBKeyPathLexer(const String& s)
</span><span class="cx"> : m_string(s)
</span><del>- , m_ptr(s.deprecatedCharacters())
- , m_end(s.deprecatedCharacters() + s.length())
</del><ins>+ , m_remainingText(s)
</ins><span class="cx"> , m_currentTokenType(TokenError)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -64,23 +63,23 @@
</span><span class="cx"> private:
</span><span class="cx"> TokenType lex(String&);
</span><span class="cx"> TokenType lexIdentifier(String&);
</span><ins>+
</ins><span class="cx"> String m_currentElement;
</span><del>- String m_string;
- const UChar* m_ptr;
- const UChar* m_end;
</del><ins>+ const String m_string;
+ StringView m_remainingText;
</ins><span class="cx"> TokenType m_currentTokenType;
</span><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> IDBKeyPathLexer::TokenType IDBKeyPathLexer::lex(String& element)
</span><span class="cx"> {
</span><del>- if (m_ptr >= m_end)
</del><ins>+ if (m_remainingText.isEmpty())
</ins><span class="cx"> return TokenEnd;
</span><del>- ASSERT_WITH_SECURITY_IMPLICATION(m_ptr < m_end);
</del><span class="cx">
</span><del>- if (*m_ptr == '.') {
- ++m_ptr;
</del><ins>+ if (m_remainingText[0] == '.') {
+ m_remainingText = m_remainingText.substring(1);
</ins><span class="cx"> return TokenDot;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> return lexIdentifier(element);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -108,16 +107,16 @@
</span><span class="cx">
</span><span class="cx"> IDBKeyPathLexer::TokenType IDBKeyPathLexer::lexIdentifier(String& element)
</span><span class="cx"> {
</span><del>- const UChar* start = m_ptr;
- if (m_ptr < m_end && isIdentifierStartCharacter(*m_ptr))
- ++m_ptr;
</del><ins>+ StringView start = m_remainingText;
+ if (!m_remainingText.isEmpty() && isIdentifierStartCharacter(m_remainingText[0]))
+ m_remainingText = m_remainingText.substring(1);
</ins><span class="cx"> else
</span><span class="cx"> return TokenError;
</span><span class="cx">
</span><del>- while (m_ptr < m_end && isIdentifierCharacter(*m_ptr))
- ++m_ptr;
</del><ins>+ while (!m_remainingText.isEmpty() && isIdentifierCharacter(m_remainingText[0]))
+ m_remainingText = m_remainingText.substring(1);
</ins><span class="cx">
</span><del>- element = String(start, m_ptr - start);
</del><ins>+ element = start.substring(0, start.length() - m_remainingText.length()).toString();
</ins><span class="cx"> return TokenIdentifier;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbleveldbIDBLevelDBCodingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -297,10 +297,9 @@
</span><span class="cx"> size_t length = s.length();
</span><span class="cx"> Vector<char> ret(length * sizeof(UChar));
</span><span class="cx">
</span><del>- const UChar* src = s.deprecatedCharacters();
</del><span class="cx"> UChar* dst = reinterpret_cast<UChar*>(ret.data());
</span><span class="cx"> for (unsigned i = 0; i < length; ++i)
</span><del>- *dst++ = htons(*src++);
</del><ins>+ *dst++ = htons(s[i]);
</ins><span class="cx">
</span><span class="cx"> return ret;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsThreadableWebSocketChannelClientWrappercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> #include "WebSocketChannelClient.h"
</span><span class="cx"> #include <wtf/PassRefPtr.h>
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -110,8 +111,7 @@
</span><span class="cx"> {
</span><span class="cx"> unsigned length = subprotocol.length();
</span><span class="cx"> m_subprotocol.resize(length);
</span><del>- if (length)
- memcpy(m_subprotocol.data(), subprotocol.deprecatedCharacters(), sizeof(UChar) * length);
</del><ins>+ StringView(subprotocol).getCharactersWithUpconvert(m_subprotocol.data());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String ThreadableWebSocketChannelClientWrapper::extensions() const
</span><span class="lines">@@ -125,8 +125,7 @@
</span><span class="cx"> {
</span><span class="cx"> unsigned length = extensions.length();
</span><span class="cx"> m_extensions.resize(length);
</span><del>- if (length)
- memcpy(m_extensions.data(), extensions.deprecatedCharacters(), sizeof(UChar) * length);
</del><ins>+ StringView(extensions).getCharactersWithUpconvert(m_extensions.data());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ThreadableWebSocketChannel::SendResult ThreadableWebSocketChannelClientWrapper::sendRequestResult() const
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -1660,7 +1660,7 @@
</span><span class="cx"> String listMarkerText = m_object->listMarkerTextForNodeAndPosition(node, VisiblePosition(it.range()->startPosition()));
</span><span class="cx">
</span><span class="cx"> if (!listMarkerText.isEmpty())
</span><del>- [array addObject:[NSString stringWithCharacters:listMarkerText.deprecatedCharacters() length:listMarkerText.length()]];
</del><ins>+ [array addObject:listMarkerText];
</ins><span class="cx"> // There was not an element representation, so just return the text.
</span><span class="cx"> [array addObject:it.text().createNSString().get()];
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsSerializedScriptValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -447,6 +447,19 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static bool writeLittleEndianUInt16(Vector<uint8_t>& buffer, const LChar* values, uint32_t length)
+{
+ if (length > std::numeric_limits<uint32_t>::max() / 2)
+ return false;
+
+ for (unsigned i = 0; i < length; ++i) {
+ buffer.append(values[i]);
+ buffer.append(0);
+ }
+
+ return true;
+}
+
</ins><span class="cx"> template <> bool writeLittleEndian<uint8_t>(Vector<uint8_t>& buffer, const uint8_t* values, uint32_t length)
</span><span class="cx"> {
</span><span class="cx"> buffer.append(values, length);
</span><span class="lines">@@ -472,7 +485,9 @@
</span><span class="cx"> }
</span><span class="cx"> writeLittleEndian<uint8_t>(out, StringTag);
</span><span class="cx"> writeLittleEndian(out, s.length());
</span><del>- return writeLittleEndian(out, s.impl()->deprecatedCharacters(), s.length());
</del><ins>+ if (s.is8Bit())
+ return writeLittleEndianUInt16(out, s.characters8(), s.length());
+ return writeLittleEndian(out, s.characters16(), s.length());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void serializeUndefined(Vector<uint8_t>& out)
</span><span class="lines">@@ -969,21 +984,28 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ unsigned length = str.length();
+
</ins><span class="cx"> // This condition is unlikely to happen as they would imply an ~8gb
</span><span class="cx"> // string but we should guard against it anyway
</span><del>- if (str.length() >= StringPoolTag) {
</del><ins>+ if (length >= StringPoolTag) {
</ins><span class="cx"> fail();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Guard against overflow
</span><del>- if (str.length() > (std::numeric_limits<uint32_t>::max() - sizeof(uint32_t)) / sizeof(UChar)) {
</del><ins>+ if (length > (std::numeric_limits<uint32_t>::max() - sizeof(uint32_t)) / sizeof(UChar)) {
</ins><span class="cx"> fail();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- writeLittleEndian<uint32_t>(m_buffer, str.length());
- if (!writeLittleEndian<uint16_t>(m_buffer, reinterpret_cast<const uint16_t*>(str.deprecatedCharacters()), str.length()))
</del><ins>+ writeLittleEndian<uint32_t>(m_buffer, length);
+ if (!length || str.is8Bit()) {
+ if (!writeLittleEndianUInt16(m_buffer, str.characters8(), length))
+ fail();
+ return;
+ }
+ if (!writeLittleEndian(m_buffer, str.characters16(), length))
</ins><span class="cx"> fail();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcWebScriptObjectmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/WebScriptObject.mm (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/WebScriptObject.mm        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/bindings/objc/WebScriptObject.mm        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -546,11 +546,8 @@
</span><span class="cx"> return [WebScriptObject scriptObjectForJSObject:toRef(object) originRootObject:originRootObject rootObject:rootObject];
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (value.isString()) {
- ExecState* exec = rootObject->globalObject()->globalExec();
- const String& u = asString(value)->value(exec);
- return [NSString stringWithCharacters:u.deprecatedCharacters() length:u.length()];
- }
</del><ins>+ if (value.isString())
+ return asString(value)->value(rootObject->globalObject()->globalExec());
</ins><span class="cx">
</span><span class="cx"> if (value.isNumber())
</span><span class="cx"> return [NSNumber numberWithDouble:value.asNumber()];
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/dom/Document.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -3972,10 +3972,9 @@
</span><span class="cx"> bool sawColon = false;
</span><span class="cx"> int colonPos = 0;
</span><span class="cx">
</span><del>- const UChar* s = qualifiedName.deprecatedCharacters();
</del><span class="cx"> for (unsigned i = 0; i < length;) {
</span><span class="cx"> UChar32 c;
</span><del>- U16_NEXT(s, i, length, c)
</del><ins>+ U16_NEXT(qualifiedName, i, length, c)
</ins><span class="cx"> if (c == ':') {
</span><span class="cx"> if (sawColon) {
</span><span class="cx"> ec = NAMESPACE_ERR;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -667,7 +667,7 @@
</span><span class="cx"> static inline bool containsOnlyWhitespace(const String& text)
</span><span class="cx"> {
</span><span class="cx"> for (unsigned i = 0; i < text.length(); ++i) {
</span><del>- if (!isWhitespace(text.deprecatedCharacters()[i]))
</del><ins>+ if (!isWhitespace(text[i]))
</ins><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSmartReplacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SmartReplace.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SmartReplace.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/editing/SmartReplace.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -34,15 +34,14 @@
</span><span class="cx">
</span><span class="cx"> #include <unicode/uset.h>
</span><span class="cx"> #include <wtf/Assertions.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> static void addAllCodePoints(USet* smartSet, const String& string)
</span><span class="cx"> {
</span><del>- const UChar* characters = string.deprecatedCharacters();
</del><span class="cx"> for (size_t i = 0; i < string.length(); i++)
</span><del>- uset_add(smartSet, characters[i]);
</del><ins>+ uset_add(smartSet, string[i]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // This is mostly a port of the code in WebCore/editing/SmartReplaceCF.cpp
</span><span class="lines">@@ -56,7 +55,7 @@
</span><span class="cx"> // Whitespace and newline (kCFCharacterSetWhitespaceAndNewline)
</span><span class="cx"> UErrorCode ec = U_ZERO_ERROR;
</span><span class="cx"> String whitespaceAndNewline = ASCIILiteral("[[:WSpace:] [\\u000A\\u000B\\u000C\\u000D\\u0085]]");
</span><del>- smartSet = uset_openPattern(whitespaceAndNewline.deprecatedCharacters(), whitespaceAndNewline.length(), &ec);
</del><ins>+ smartSet = uset_openPattern(StringView(whitespaceAndNewline).upconvertedCharacters(), whitespaceAndNewline.length(), &ec);
</ins><span class="cx"> ASSERT(U_SUCCESS(ec));
</span><span class="cx">
</span><span class="cx"> // CJK ranges
</span><span class="lines">@@ -83,7 +82,7 @@
</span><span class="cx"> // Punctuation (kCFCharacterSetPunctuation)
</span><span class="cx"> UErrorCode ec = U_ZERO_ERROR;
</span><span class="cx"> String punctuationClass = ASCIILiteral("[:P:]");
</span><del>- USet* icuPunct = uset_openPattern(punctuationClass.deprecatedCharacters(), punctuationClass.length(), &ec);
</del><ins>+ USet* icuPunct = uset_openPattern(StringView(punctuationClass).upconvertedCharacters(), punctuationClass.length(), &ec);
</ins><span class="cx"> ASSERT(U_SUCCESS(ec));
</span><span class="cx"> uset_addAll(smartSet, icuPunct);
</span><span class="cx"> uset_close(icuPunct);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextIterator.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextIterator.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/editing/TextIterator.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -92,7 +92,8 @@
</span><span class="cx"> bool isBadMatch(const UChar*, size_t length) const;
</span><span class="cx"> bool isWordStartMatch(size_t start, size_t length) const;
</span><span class="cx">
</span><del>- String m_target;
</del><ins>+ const String m_target;
+ const StringView::UpconvertedCharacters m_targetCharacters;
</ins><span class="cx"> FindOptions m_options;
</span><span class="cx">
</span><span class="cx"> Vector<UChar> m_buffer;
</span><span class="lines">@@ -101,7 +102,7 @@
</span><span class="cx"> bool m_atBreak;
</span><span class="cx"> bool m_needsMoreContext;
</span><span class="cx">
</span><del>- bool m_targetRequiresKanaWorkaround;
</del><ins>+ const bool m_targetRequiresKanaWorkaround;
</ins><span class="cx"> Vector<UChar> m_normalizedTarget;
</span><span class="cx"> mutable Vector<UChar> m_normalizedMatch;
</span><span class="cx">
</span><span class="lines">@@ -1649,17 +1650,22 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline void foldQuoteMarksAndSoftHyphens(String& s)
</del><ins>+// FIXME: We'd like to tailor the searcher to fold quote marks for us instead
+// of doing it in a separate replacement pass here, but ICU doesn't offer a way
+// to add tailoring on top of the locale-specific tailoring as of this writing.
+static inline String foldQuoteMarksAndSoftHyphens(String string)
</ins><span class="cx"> {
</span><del>- s.replace(hebrewPunctuationGeresh, '\'');
- s.replace(hebrewPunctuationGershayim, '"');
- s.replace(leftDoubleQuotationMark, '"');
- s.replace(leftSingleQuotationMark, '\'');
- s.replace(rightDoubleQuotationMark, '"');
- s.replace(rightSingleQuotationMark, '\'');
- // Replace soft hyphen with an ignorable character so that their presence or absence will
- // not affect string comparison.
- s.replace(softHyphen, 0);
</del><ins>+ string.replace(hebrewPunctuationGeresh, '\'');
+ string.replace(hebrewPunctuationGershayim, '"');
+ string.replace(leftDoubleQuotationMark, '"');
+ string.replace(leftSingleQuotationMark, '\'');
+ string.replace(rightDoubleQuotationMark, '"');
+ string.replace(rightSingleQuotationMark, '\'');
+
+ // Replace soft hyphens with an ignorable character so that presence or absence will not affect string comparison.
+ string.replace(softHyphen, 0);
+
+ return string;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if !UCONFIG_NO_COLLATION
</span><span class="lines">@@ -1943,7 +1949,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline SearchBuffer::SearchBuffer(const String& target, FindOptions options)
</span><del>- : m_target(target)
</del><ins>+ : m_target(foldQuoteMarksAndSoftHyphens(target))
+ , m_targetCharacters(StringView(m_target).upconvertedCharacters())
</ins><span class="cx"> , m_options(options)
</span><span class="cx"> , m_prefixLength(0)
</span><span class="cx"> , m_atBreak(true)
</span><span class="lines">@@ -1952,11 +1959,6 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(!m_target.isEmpty());
</span><span class="cx">
</span><del>- // FIXME: We'd like to tailor the searcher to fold quote marks for us instead
- // of doing it in a separate replacement pass here, but ICU doesn't offer a way
- // to add tailoring on top of the locale-specific tailoring as of this writing.
- foldQuoteMarksAndSoftHyphens(m_target);
-
</del><span class="cx"> size_t targetLength = m_target.length();
</span><span class="cx"> m_buffer.reserveInitialCapacity(std::max(targetLength * 8, minimumSearchBufferSize));
</span><span class="cx"> m_overlap = m_buffer.capacity() / 4;
</span><span class="lines">@@ -2000,12 +2002,12 @@
</span><span class="cx"> usearch_setAttribute(searcher, USEARCH_ELEMENT_COMPARISON, comparator, &status);
</span><span class="cx"> ASSERT(status == U_ZERO_ERROR);
</span><span class="cx">
</span><del>- usearch_setPattern(searcher, m_target.deprecatedCharacters(), targetLength, &status);
</del><ins>+ usearch_setPattern(searcher, m_targetCharacters, targetLength, &status);
</ins><span class="cx"> ASSERT(status == U_ZERO_ERROR);
</span><span class="cx">
</span><span class="cx"> // The kana workaround requires a normalized copy of the target string.
</span><span class="cx"> if (m_targetRequiresKanaWorkaround)
</span><del>- normalizeCharacters(m_target.deprecatedCharacters(), m_target.length(), m_normalizedTarget);
</del><ins>+ normalizeCharacters(m_targetCharacters, targetLength, m_normalizedTarget);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline SearchBuffer::~SearchBuffer()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTypingCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TypingCommand.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TypingCommand.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/editing/TypingCommand.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> ASSERT(frame);
</span><span class="cx">
</span><span class="cx"> if (!text.isEmpty())
</span><del>- frame->editor().updateMarkersForWordsAffectedByEditing(isSpaceOrNewline(text.deprecatedCharacters()[0]));
</del><ins>+ frame->editor().updateMarkersForWordsAffectedByEditing(isSpaceOrNewline(text[0]));
</ins><span class="cx">
</span><span class="cx"> insertText(document, text, frame->selection().selection(), options, composition);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisiblePositioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisiblePosition.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisiblePosition.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/editing/VisiblePosition.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -590,8 +590,7 @@
</span><span class="cx"> return 0;
</span><span class="cx">
</span><span class="cx"> UChar32 ch;
</span><del>- const UChar* characters = textNode->data().deprecatedCharacters();
- U16_NEXT(characters, offset, length, ch);
</del><ins>+ U16_NEXT(textNode->data(), offset, length, ch);
</ins><span class="cx"> return ch;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisibleUnitscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisibleUnits.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisibleUnits.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/editing/VisibleUnits.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -1155,13 +1155,13 @@
</span><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(n->isTextNode());
</span><span class="cx"> type = Position::PositionIsOffsetInAnchor;
</span><span class="cx"> if (style.preserveNewline()) {
</span><del>- const UChar* chars = toRenderText(r)->deprecatedCharacters();
- int i = toRenderText(r)->textLength();
</del><ins>+ StringImpl& text = *toRenderText(r)->text();
+ int i = text.length();
</ins><span class="cx"> int o = offset;
</span><span class="cx"> if (n == startNode && o < i)
</span><span class="cx"> i = std::max(0, o);
</span><span class="cx"> while (--i >= 0) {
</span><del>- if (chars[i] == '\n')
</del><ins>+ if (text[i] == '\n')
</ins><span class="cx"> return VisiblePosition(Position(toText(n), i + 1), DOWNSTREAM);
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="lines">@@ -1236,13 +1236,13 @@
</span><span class="cx"> // FIXME: We avoid returning a position where the renderer can't accept the caret.
</span><span class="cx"> if (r->isText() && toRenderText(r)->hasRenderedText()) {
</span><span class="cx"> ASSERT_WITH_SECURITY_IMPLICATION(n->isTextNode());
</span><del>- int length = toRenderText(r)->textLength();
</del><span class="cx"> type = Position::PositionIsOffsetInAnchor;
</span><span class="cx"> if (style.preserveNewline()) {
</span><del>- const UChar* chars = toRenderText(r)->deprecatedCharacters();
</del><ins>+ StringImpl& text = *toRenderText(r)->text();
</ins><span class="cx"> int o = n == startNode ? offset : 0;
</span><ins>+ int length = text.length();
</ins><span class="cx"> for (int i = o; i < length; ++i) {
</span><del>- if (chars[i] == '\n')
</del><ins>+ if (text[i] == '\n')
</ins><span class="cx"> return VisiblePosition(Position(toText(n), i), DOWNSTREAM);
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorefileapiWebKitBlobBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/fileapi/WebKitBlobBuilder.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/fileapi/WebKitBlobBuilder.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/fileapi/WebKitBlobBuilder.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx"> #include <wtf/text/AtomicString.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -71,7 +72,7 @@
</span><span class="cx">
</span><span class="cx"> void BlobBuilder::append(const String& text, const String& endingType)
</span><span class="cx"> {
</span><del>- CString utf8Text = UTF8Encoding().encode(text.deprecatedCharacters(), text.length(), EntitiesForUnencodables);
</del><ins>+ CString utf8Text = UTF8Encoding().encode(text, EntitiesForUnencodables);
</ins><span class="cx">
</span><span class="cx"> Vector<char>& buffer = getBuffer();
</span><span class="cx"> size_t oldSize = buffer.size();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlBaseDateAndTimeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/html/BaseDateAndTimeInputType.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> DateComponents ignoredResult;
</span><span class="cx"> if (!out)
</span><span class="cx"> out = &ignoredResult;
</span><del>- return parseToDateComponentsInternal(source.deprecatedCharacters(), source.length(), out);
</del><ins>+ return parseToDateComponentsInternal(source.upconvertedCharacters(), source.length(), out);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String BaseDateAndTimeInputType::serialize(const Decimal& value) const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFormDataListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FormDataList.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FormDataList.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/html/FormDataList.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -22,6 +22,7 @@
</span><span class="cx"> #include "FormDataList.h"
</span><span class="cx">
</span><span class="cx"> #include "LineEnding.h"
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -32,7 +33,7 @@
</span><span class="cx">
</span><span class="cx"> void FormDataList::appendString(const String& s)
</span><span class="cx"> {
</span><del>- CString cstr = m_encoding.encode(s.deprecatedCharacters(), s.length(), EntitiesForUnencodables);
</del><ins>+ CString cstr = m_encoding.encode(s, EntitiesForUnencodables);
</ins><span class="cx"> m_items.append(normalizeLineEndingsToCRLF(cstr));
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -2167,7 +2167,7 @@
</span><span class="cx">
</span><span class="cx"> unsigned textLength = text.length();
</span><span class="cx"> Vector<UChar> charVector(textLength);
</span><del>- memcpy(charVector.data(), text.deprecatedCharacters(), textLength * sizeof(UChar));
</del><ins>+ StringView(text).getCharactersWithUpconvert(charVector.data());
</ins><span class="cx">
</span><span class="cx"> charVector[i++] = ' ';
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserIdiomscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> if (string.is8Bit())
</span><span class="cx"> return stripLeadingAndTrailingHTMLSpaces(string, string.characters8(), length);
</span><span class="cx">
</span><del>- return stripLeadingAndTrailingHTMLSpaces(string, string.deprecatedCharacters(), length);
</del><ins>+ return stripLeadingAndTrailingHTMLSpaces(string, string.characters16(), length);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String serializeForNumberType(const Decimal& number)
</span><span class="lines">@@ -267,12 +267,12 @@
</span><span class="cx"> // Step 1
</span><span class="cx"> // Step 2
</span><span class="cx"> unsigned length = input.length();
</span><del>- if (length && input.is8Bit()) {
</del><ins>+ if (!length || input.is8Bit()) {
</ins><span class="cx"> const LChar* start = input.characters8();
</span><span class="cx"> return parseHTMLNonNegativeIntegerInternal(start, start + length, value);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- const UChar* start = input.deprecatedCharacters();
</del><ins>+ const UChar* start = input.characters16();
</ins><span class="cx"> return parseHTMLNonNegativeIntegerInternal(start, start + length, value);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -326,7 +326,10 @@
</span><span class="cx"> if (isFoundScaleFactor)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- imageScaleFactor = charactersToFloat(attribute.deprecatedCharacters() + descriptorStart, descriptorEnd - descriptorStart, &isValid);
</del><ins>+ if (attribute.is8Bit())
+ imageScaleFactor = charactersToFloat(attribute.characters8() + descriptorStart, descriptorEnd - descriptorStart, &isValid);
+ else
+ imageScaleFactor = charactersToFloat(attribute.characters16() + descriptorStart, descriptorEnd - descriptorStart, &isValid);
</ins><span class="cx"> isFoundScaleFactor = true;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorStyleSheetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -712,14 +712,13 @@
</span><span class="cx"> int propertyIndex = 0;
</span><span class="cx"> bool isFullPrefixScanned = false;
</span><span class="cx"> bool lineFeedTerminated = false;
</span><del>- const UChar* characters = text.deprecatedCharacters();
</del><span class="cx"> while (propertyIndex < propertyCount) {
</span><span class="cx"> const WebCore::CSSPropertySourceData& currentProperty = sourcePropertyData->at(propertyIndex++);
</span><span class="cx">
</span><span class="cx"> bool processNextProperty = false;
</span><span class="cx"> int scanEnd = currentProperty.range.start;
</span><span class="cx"> for (int i = scanStart; i < scanEnd; ++i) {
</span><del>- UChar ch = characters[i];
</del><ins>+ UChar ch = text[i];
</ins><span class="cx"> bool isLineFeed = isHTMLLineBreak(ch);
</span><span class="cx"> if (isLineFeed) {
</span><span class="cx"> if (!lineFeedTerminated)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorStyleTextEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorStyleTextEditor.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorStyleTextEditor.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/inspector/InspectorStyleTextEditor.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -82,12 +82,10 @@
</span><span class="cx"> if (insertLast && !insertFirstInSource) {
</span><span class="cx"> propertyStart = styleBodyLength;
</span><span class="cx"> if (propertyStart && textToSet.length()) {
</span><del>- const UChar* characters = m_styleText.deprecatedCharacters();
-
</del><span class="cx"> long curPos = propertyStart - 1; // The last position of style declaration, since propertyStart points past one.
</span><del>- while (curPos && isHTMLSpace(characters[curPos]))
</del><ins>+ while (curPos && isHTMLSpace(m_styleText[curPos]))
</ins><span class="cx"> --curPos;
</span><del>- if (curPos && characters[curPos] != ';') {
</del><ins>+ if (curPos && m_styleText[curPos] != ';') {
</ins><span class="cx"> // Prepend a ";" to the property text if appending to a style declaration where
</span><span class="cx"> // the last property has no trailing ";".
</span><span class="cx"> textToSet.insert(";", 0);
</span><span class="lines">@@ -230,7 +228,6 @@
</span><span class="cx"> const SourceRange& range = property.sourceData.range;
</span><span class="cx"> long replaceRangeStart = range.start;
</span><span class="cx"> long replaceRangeEnd = range.end;
</span><del>- const UChar* characters = m_styleText.deprecatedCharacters();
</del><span class="cx"> long newTextLength = newText.length();
</span><span class="cx"> String finalNewText = newText;
</span><span class="cx">
</span><span class="lines">@@ -241,14 +238,14 @@
</span><span class="cx"> if (replaceRangeStart >= fullPrefixLength && m_styleText.substring(replaceRangeStart - fullPrefixLength, fullPrefixLength) == fullPrefix)
</span><span class="cx"> replaceRangeStart -= fullPrefixLength;
</span><span class="cx"> } else if (newTextLength) {
</span><del>- if (isHTMLLineBreak(newText.deprecatedCharacters()[newTextLength - 1])) {
</del><ins>+ if (isHTMLLineBreak(newText[newTextLength - 1])) {
</ins><span class="cx"> // Coalesce newlines of the original and new property values (to avoid a lot of blank lines while incrementally applying property values).
</span><span class="cx"> bool foundNewline = false;
</span><span class="cx"> bool isLastNewline = false;
</span><span class="cx"> int i;
</span><span class="cx"> int textLength = m_styleText.length();
</span><del>- for (i = replaceRangeEnd; i < textLength && isSpaceOrNewline(characters[i]); ++i) {
- isLastNewline = isHTMLLineBreak(characters[i]);
</del><ins>+ for (i = replaceRangeEnd; i < textLength && isSpaceOrNewline(m_styleText[i]); ++i) {
+ isLastNewline = isHTMLLineBreak(m_styleText[i]);
</ins><span class="cx"> if (isLastNewline)
</span><span class="cx"> foundNewline = true;
</span><span class="cx"> else if (foundNewline && !isLastNewline) {
</span></span></pre></div>
<a id="trunkSourceWebCorepageContentSecurityPolicycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContentSecurityPolicy.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContentSecurityPolicy.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/page/ContentSecurityPolicy.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx"> #include <inspector/ScriptCallStackFactory.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><span class="cx"> #include <wtf/text/TextPosition.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><span class="cx">
</span><span class="cx"> using namespace Inspector;
</span><span class="cx">
</span><span class="lines">@@ -189,8 +188,9 @@
</span><span class="cx">
</span><span class="cx"> static bool isSourceListNone(const String& value)
</span><span class="cx"> {
</span><del>- const UChar* begin = value.deprecatedCharacters();
- const UChar* end = value.deprecatedCharacters() + value.length();
</del><ins>+ auto characters = StringView(value).upconvertedCharacters();
+ const UChar* begin = characters;
+ const UChar* end = characters + value.length();
</ins><span class="cx"> skipWhile<isASCIISpace>(begin, end);
</span><span class="cx">
</span><span class="cx"> const UChar* position = begin;
</span><span class="lines">@@ -339,7 +339,8 @@
</span><span class="cx"> // We represent 'none' as an empty m_list.
</span><span class="cx"> if (isSourceListNone(value))
</span><span class="cx"> return;
</span><del>- parse(value.deprecatedCharacters(), value.deprecatedCharacters() + value.length());
</del><ins>+ auto characters = StringView(value).upconvertedCharacters();
+ parse(characters, characters + value.length());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool CSPSourceList::matches(const URL& url)
</span><span class="lines">@@ -680,7 +681,8 @@
</span><span class="cx"> void parse(const String& value)
</span><span class="cx"> {
</span><span class="cx"> String nonce;
</span><del>- const UChar* position = value.deprecatedCharacters();
</del><ins>+ auto characters = StringView(value).upconvertedCharacters();
+ const UChar* position = characters;
</ins><span class="cx"> const UChar* end = position + value.length();
</span><span class="cx">
</span><span class="cx"> skipWhile<isASCIISpace>(position, end);
</span><span class="lines">@@ -723,7 +725,8 @@
</span><span class="cx"> private:
</span><span class="cx"> void parse(const String& value)
</span><span class="cx"> {
</span><del>- const UChar* begin = value.deprecatedCharacters();
</del><ins>+ auto characters = StringView(value).upconvertedCharacters();
+ const UChar* begin = characters;
</ins><span class="cx"> const UChar* position = begin;
</span><span class="cx"> const UChar* end = begin + value.length();
</span><span class="cx">
</span><span class="lines">@@ -1211,7 +1214,8 @@
</span><span class="cx"> if (policy.isEmpty())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- const UChar* position = policy.deprecatedCharacters();
</del><ins>+ auto characters = StringView(policy).upconvertedCharacters();
+ const UChar* position = characters;
</ins><span class="cx"> const UChar* end = position + policy.length();
</span><span class="cx">
</span><span class="cx"> while (position < end) {
</span><span class="lines">@@ -1290,7 +1294,9 @@
</span><span class="cx"> m_policy->reportDuplicateDirective(name);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><del>- const UChar* position = value.deprecatedCharacters();
</del><ins>+
+ auto characters = StringView(value).upconvertedCharacters();
+ const UChar* position = characters;
</ins><span class="cx"> const UChar* end = position + value.length();
</span><span class="cx">
</span><span class="cx"> while (position < end) {
</span><span class="lines">@@ -1344,7 +1350,8 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- const UChar* position = value.deprecatedCharacters();
</del><ins>+ auto characters = StringView(value).upconvertedCharacters();
+ const UChar* position = characters;
</ins><span class="cx"> const UChar* end = position + value.length();
</span><span class="cx">
</span><span class="cx"> skipWhile<isASCIISpace>(position, end);
</span><span class="lines">@@ -1443,7 +1450,8 @@
</span><span class="cx"> // RFC2616, section 4.2 specifies that headers appearing multiple times can
</span><span class="cx"> // be combined with a comma. Walk the header string, and parse each comma
</span><span class="cx"> // separated chunk as a separate header.
</span><del>- const UChar* begin = header.deprecatedCharacters();
</del><ins>+ auto characters = StringView(header).upconvertedCharacters();
+ const UChar* begin = characters;
</ins><span class="cx"> const UChar* position = begin;
</span><span class="cx"> const UChar* end = begin + header.length();
</span><span class="cx"> while (position < end) {
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/page/PageSerializer.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -216,7 +216,7 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> String text = accumulator.serializeNodes(*document->documentElement(), 0, IncludeNode);
</span><del>- CString frameHTML = textEncoding.encode(text.deprecatedCharacters(), text.length(), EntitiesForUnencodables);
</del><ins>+ CString frameHTML = textEncoding.encode(text, EntitiesForUnencodables);
</ins><span class="cx"> m_resources->append(Resource(url, document->suggestedMIMEType(), SharedBuffer::create(frameHTML.data(), frameHTML.length())));
</span><span class="cx"> m_resourceURLs.add(url);
</span><span class="cx">
</span><span class="lines">@@ -283,7 +283,7 @@
</span><span class="cx"> TextEncoding textEncoding(styleSheet->contents().charset());
</span><span class="cx"> ASSERT(textEncoding.isValid());
</span><span class="cx"> String textString = cssText.toString();
</span><del>- CString text = textEncoding.encode(textString.deprecatedCharacters(), textString.length(), EntitiesForUnencodables);
</del><ins>+ CString text = textEncoding.encode(textString, EntitiesForUnencodables);
</ins><span class="cx"> m_resources->append(Resource(url, String("text/css"), SharedBuffer::create(text.data(), text.length())));
</span><span class="cx"> m_resourceURLs.add(url);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLengthcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Length.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Length.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/Length.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> #include <wtf/Assertions.h>
</span><span class="cx"> #include <wtf/StdLibExtras.h>
</span><span class="cx"> #include <wtf/text/StringBuffer.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> using namespace WTF;
</span><span class="cx">
</span><span class="lines">@@ -77,21 +77,21 @@
</span><span class="cx"> return Length(0, Relative);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static int countCharacter(const UChar* data, unsigned length, UChar character)
</del><ins>+static unsigned countCharacter(StringImpl& string, UChar character)
</ins><span class="cx"> {
</span><del>- int count = 0;
- for (int i = 0; i < static_cast<int>(length); ++i)
- count += data[i] == character;
</del><ins>+ unsigned count = 0;
+ unsigned length = string.length();
+ for (unsigned i = 0; i < length; ++i)
+ count += string[i] == character;
</ins><span class="cx"> return count;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<Length[]> newCoordsArray(const String& string, int& len)
</span><span class="cx"> {
</span><span class="cx"> unsigned length = string.length();
</span><del>- const UChar* data = string.deprecatedCharacters();
</del><span class="cx"> StringBuffer<UChar> spacified(length);
</span><span class="cx"> for (unsigned i = 0; i < length; i++) {
</span><del>- UChar cc = data[i];
</del><ins>+ UChar cc = string[i];
</ins><span class="cx"> if (cc > '9' || (cc < '0' && cc != '-' && cc != '*' && cc != '.'))
</span><span class="cx"> spacified[i] = ' ';
</span><span class="cx"> else
</span><span class="lines">@@ -101,18 +101,19 @@
</span><span class="cx">
</span><span class="cx"> str = str->simplifyWhiteSpace();
</span><span class="cx">
</span><del>- len = countCharacter(str->deprecatedCharacters(), str->length(), ' ') + 1;
</del><ins>+ len = countCharacter(*str, ' ') + 1;
</ins><span class="cx"> auto r = std::make_unique<Length[]>(len);
</span><span class="cx">
</span><span class="cx"> int i = 0;
</span><span class="cx"> unsigned pos = 0;
</span><span class="cx"> size_t pos2;
</span><span class="cx">
</span><ins>+ auto upconvertedCharacters = StringView(str.get()).upconvertedCharacters();
</ins><span class="cx"> while ((pos2 = str->find(' ', pos)) != notFound) {
</span><del>- r[i++] = parseLength(str->deprecatedCharacters() + pos, pos2 - pos);
</del><ins>+ r[i++] = parseLength(upconvertedCharacters + pos, pos2 - pos);
</ins><span class="cx"> pos = pos2+1;
</span><span class="cx"> }
</span><del>- r[i] = parseLength(str->deprecatedCharacters() + pos, str->length() - pos);
</del><ins>+ r[i] = parseLength(upconvertedCharacters + pos, str->length() - pos);
</ins><span class="cx">
</span><span class="cx"> ASSERT(i == len - 1);
</span><span class="cx">
</span><span class="lines">@@ -127,15 +128,16 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- len = countCharacter(str->deprecatedCharacters(), str->length(), ',') + 1;
</del><ins>+ len = countCharacter(*str, ',') + 1;
</ins><span class="cx"> auto r = std::make_unique<Length[]>(len);
</span><span class="cx">
</span><span class="cx"> int i = 0;
</span><span class="cx"> unsigned pos = 0;
</span><span class="cx"> size_t pos2;
</span><span class="cx">
</span><ins>+ auto upconvertedCharacters = StringView(str.get()).upconvertedCharacters();
</ins><span class="cx"> while ((pos2 = str->find(',', pos)) != notFound) {
</span><del>- r[i++] = parseLength(str->deprecatedCharacters() + pos, pos2 - pos);
</del><ins>+ r[i++] = parseLength(upconvertedCharacters + pos, pos2 - pos);
</ins><span class="cx"> pos = pos2+1;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -143,7 +145,7 @@
</span><span class="cx">
</span><span class="cx"> // IE Quirk: If the last comma is the last char skip it and reduce len by one.
</span><span class="cx"> if (str->length()-pos > 0)
</span><del>- r[i] = parseLength(str->deprecatedCharacters() + pos, str->length() - pos);
</del><ins>+ r[i] = parseLength(upconvertedCharacters + pos, str->length() - pos);
</ins><span class="cx"> else
</span><span class="cx"> len--;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLinkHashcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LinkHash.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LinkHash.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/LinkHash.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -214,10 +214,9 @@
</span><span class="cx"> LinkHash visitedLinkHash(const String& url)
</span><span class="cx"> {
</span><span class="cx"> unsigned length = url.length();
</span><del>-
- if (length && url.is8Bit())
</del><ins>+ if (!length || url.is8Bit())
</ins><span class="cx"> return visitedLinkHashInline(url.characters8(), length);
</span><del>- return visitedLinkHashInline(url.deprecatedCharacters(), length);
</del><ins>+ return visitedLinkHashInline(url.characters16(), length);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LinkHash visitedLinkHash(const UChar* url, unsigned length)
</span><span class="lines">@@ -284,11 +283,6 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void visitedURL(const URL& base, const AtomicString& attributeURL, Vector<UChar, 512>& buffer)
-{
- return visitedURLInline(base, attributeURL.string().deprecatedCharacters(), attributeURL.length(), buffer);
-}
-
</del><span class="cx"> LinkHash visitedLinkHash(const URL& base, const AtomicString& attributeURL)
</span><span class="cx"> {
</span><span class="cx"> if (attributeURL.isEmpty())
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLinkHashh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/LinkHash.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/LinkHash.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/LinkHash.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -63,12 +63,6 @@
</span><span class="cx"> // look like a relative URL.
</span><span class="cx"> LinkHash visitedLinkHash(const URL& base, const AtomicString& attributeURL);
</span><span class="cx">
</span><del>-// Resolves the potentially relative URL "attributeURL" relative to the given
-// base URL, and returns the hash of the string that will be used for visited.
-// It will return an empty Vector in case of errors.
-void visitedURL(const URL& base, const AtomicString& attributeURL, Vector<UChar, 512>&);
-
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> #endif // LinkHash_h
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformSharedBuffercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/SharedBuffer.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/SharedBuffer.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/SharedBuffer.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -522,10 +522,18 @@
</span><span class="cx">
</span><span class="cx"> // Convert to runs of 8-bit characters.
</span><span class="cx"> char* p = buffer.data();
</span><del>- const UChar* d = string.deprecatedCharacters();
- WTF::Unicode::ConversionResult result = WTF::Unicode::convertUTF16ToUTF8(&d, d + length, &p, p + buffer.size(), true);
- if (result != WTF::Unicode::conversionOK)
- return 0;
</del><ins>+ WTF::Unicode::ConversionResult result;
+ if (length) {
+ if (string.is8Bit()) {
+ const LChar* d = string.characters8();
+ result = WTF::Unicode::convertLatin1ToUTF8(&d, d + length, &p, p + buffer.size());
+ } else {
+ const UChar* d = string.characters16();
+ result = WTF::Unicode::convertUTF16ToUTF8(&d, d + length, &p, p + buffer.size(), true);
+ }
+ if (result != WTF::Unicode::conversionOK)
+ return nullptr;
+ }
</ins><span class="cx">
</span><span class="cx"> buffer.shrink(p - buffer.data());
</span><span class="cx"> return SharedBuffer::adoptVector(buffer);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformURLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/URL.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/URL.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/URL.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -588,7 +588,11 @@
</span><span class="cx"> return 0;
</span><span class="cx">
</span><span class="cx"> bool ok = false;
</span><del>- unsigned number = charactersToUIntStrict(m_string.deprecatedCharacters() + m_hostEnd + 1, m_portEnd - m_hostEnd - 1, &ok);
</del><ins>+ unsigned number;
+ if (m_string.is8Bit())
+ number = charactersToUIntStrict(m_string.characters8() + m_hostEnd + 1, m_portEnd - m_hostEnd - 1, &ok);
+ else
+ number = charactersToUIntStrict(m_string.characters16() + m_hostEnd + 1, m_portEnd - m_hostEnd - 1, &ok);
</ins><span class="cx"> if (!ok || number > maximumValidPortNumber)
</span><span class="cx"> return invalidPortNumber;
</span><span class="cx"> return number;
</span><span class="lines">@@ -1666,14 +1670,14 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (pathEnd == -1) {
</span><del>- CString decoded = pathEncoding.encode(s.data(), s.size(), URLEncodedEntitiesForUnencodables);
</del><ins>+ CString decoded = pathEncoding.encode(StringView(s.data(), s.size()), URLEncodedEntitiesForUnencodables);
</ins><span class="cx"> output.resize(decoded.length());
</span><span class="cx"> memcpy(output.data(), decoded.data(), decoded.length());
</span><span class="cx"> } else {
</span><del>- CString pathDecoded = pathEncoding.encode(s.data(), pathEnd, URLEncodedEntitiesForUnencodables);
</del><ins>+ CString pathDecoded = pathEncoding.encode(StringView(s.data(), pathEnd), URLEncodedEntitiesForUnencodables);
</ins><span class="cx"> // Unencodable characters in URLs are represented by converting
</span><span class="cx"> // them to XML entities and escaping non-alphanumeric characters.
</span><del>- CString otherDecoded = encoding.encode(s.data() + pathEnd, s.size() - pathEnd, URLEncodedEntitiesForUnencodables);
</del><ins>+ CString otherDecoded = encoding.encode(StringView(s.data() + pathEnd, s.size() - pathEnd), URLEncodedEntitiesForUnencodables);
</ins><span class="cx">
</span><span class="cx"> output.resize(pathDecoded.length() + otherDecoded.length());
</span><span class="cx"> memcpy(output.data(), pathDecoded.data(), pathDecoded.length());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsColorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Color.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Color.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/graphics/Color.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx"> return false;
</span><span class="cx"> if (name.is8Bit())
</span><span class="cx"> return parseHexColor(name.characters8(), name.length(), rgb);
</span><del>- return parseHexColor(name.deprecatedCharacters(), name.length(), rgb);
</del><ins>+ return parseHexColor(name.characters16(), name.length(), rgb);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int differenceSquared(const Color& c1, const Color& c2)
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx"> if (name.is8Bit())
</span><span class="cx"> m_valid = parseHexColor(name.characters8() + 1, name.length() - 1, m_color);
</span><span class="cx"> else
</span><del>- m_valid = parseHexColor(name.deprecatedCharacters() + 1, name.length() - 1, m_color);
</del><ins>+ m_valid = parseHexColor(name.characters16() + 1, name.length() - 1, m_color);
</ins><span class="cx"> } else
</span><span class="cx"> setNamedColor(name);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsStringTruncatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/StringTruncator.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/StringTruncator.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/graphics/StringTruncator.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -89,12 +89,10 @@
</span><span class="cx"> unsigned truncatedLength = shouldInsertEllipsis ? omitStart + 1 + (length - omitEnd) : length - (omitEnd - omitStart);
</span><span class="cx"> ASSERT(truncatedLength <= length);
</span><span class="cx">
</span><del>- memcpy(buffer, string.deprecatedCharacters(), sizeof(UChar) * omitStart);
- if (shouldInsertEllipsis) {
- buffer[omitStart] = horizontalEllipsis;
- memcpy(&buffer[omitStart + 1], &string.deprecatedCharacters()[omitEnd], sizeof(UChar) * (length - omitEnd));
- } else
- memcpy(&buffer[omitStart], &string.deprecatedCharacters()[omitEnd], sizeof(UChar) * (length - omitEnd));
</del><ins>+ StringView(string).substring(0, omitStart).getCharactersWithUpconvert(buffer);
+ if (shouldInsertEllipsis)
+ buffer[omitStart++] = horizontalEllipsis;
+ StringView(string).substring(omitEnd, length - omitEnd).getCharactersWithUpconvert(&buffer[omitStart + 1]);
</ins><span class="cx"> return truncatedLength;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -119,7 +117,7 @@
</span><span class="cx"> unsigned keepLength = textBreakAtOrPreceding(it, keepCount);
</span><span class="cx"> unsigned truncatedLength = shouldInsertEllipsis ? keepLength + 1 : keepLength;
</span><span class="cx">
</span><del>- memcpy(buffer, string.deprecatedCharacters(), sizeof(UChar) * keepLength);
</del><ins>+ StringView(string).substring(0, keepLength).getCharactersWithUpconvert(buffer);
</ins><span class="cx"> if (shouldInsertEllipsis)
</span><span class="cx"> buffer[keepLength] = horizontalEllipsis;
</span><span class="cx">
</span><span class="lines">@@ -133,7 +131,7 @@
</span><span class="cx">
</span><span class="cx"> NonSharedCharacterBreakIterator it(StringView(string).substring(0, length));
</span><span class="cx"> unsigned keepLength = textBreakAtOrPreceding(it, keepCount);
</span><del>- memcpy(buffer, string.deprecatedCharacters(), sizeof(UChar) * keepLength);
</del><ins>+ StringView(string).substring(0, keepLength).getCharactersWithUpconvert(buffer);
</ins><span class="cx">
</span><span class="cx"> return keepLength;
</span><span class="cx"> }
</span><span class="lines">@@ -145,7 +143,7 @@
</span><span class="cx">
</span><span class="cx"> TextBreakIterator* it = wordBreakIterator(StringView(string).substring(0, length));
</span><span class="cx"> unsigned keepLength = textBreakAtOrPreceding(it, keepCount);
</span><del>- memcpy(buffer, string.deprecatedCharacters(), sizeof(UChar) * keepLength);
</del><ins>+ StringView(string).substring(0, keepLength).getCharactersWithUpconvert(buffer);
</ins><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> // FIXME: We should guard this code behind an editing behavior. Then we can remove the PLATFORM(IOS)-guard.
</span><span class="lines">@@ -178,10 +176,10 @@
</span><span class="cx">
</span><span class="cx"> if (shouldInsertEllipsis) {
</span><span class="cx"> buffer[0] = horizontalEllipsis;
</span><del>- memcpy(&buffer[1], &string.deprecatedCharacters()[adjustedStartIndex], sizeof(UChar) * (length - adjustedStartIndex + 1));
</del><ins>+ StringView(string).substring(adjustedStartIndex, length - adjustedStartIndex + 1).getCharactersWithUpconvert(&buffer[1]);
</ins><span class="cx"> return length - adjustedStartIndex + 1;
</span><span class="cx"> }
</span><del>- memcpy(&buffer[0], &string.deprecatedCharacters()[adjustedStartIndex], sizeof(UChar) * (length - adjustedStartIndex + 1));
</del><ins>+ StringView(string).substring(adjustedStartIndex, length - adjustedStartIndex + 1).getCharactersWithUpconvert(&buffer[0]);
</ins><span class="cx"> return length - adjustedStartIndex;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -218,7 +216,7 @@
</span><span class="cx"> truncatedLength = centerTruncateToBuffer(string, length, keepCount, stringBuffer, shouldInsertEllipsis);
</span><span class="cx"> } else {
</span><span class="cx"> keepCount = length;
</span><del>- memcpy(stringBuffer, string.deprecatedCharacters(), sizeof(UChar) * length);
</del><ins>+ StringView(string).getCharactersWithUpconvert(stringBuffer);
</ins><span class="cx"> truncatedLength = length;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsTextRunh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/TextRun.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/TextRun.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/graphics/TextRun.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -116,11 +116,11 @@
</span><span class="cx"> , m_disableSpacing(false)
</span><span class="cx"> , m_tabSize(0)
</span><span class="cx"> {
</span><del>- if (m_charactersLength && s.is8Bit()) {
</del><ins>+ if (!m_charactersLength || s.is8Bit()) {
</ins><span class="cx"> m_data.characters8 = s.characters8();
</span><span class="cx"> m_is8Bit = true;
</span><span class="cx"> } else {
</span><del>- m_data.characters16 = s.deprecatedCharacters();
</del><ins>+ m_data.characters16 = s.characters16();
</ins><span class="cx"> m_is8Bit = false;
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -1246,7 +1246,7 @@
</span><span class="cx"> initDataView->set<uint32_t>(0, keyURISize, true);
</span><span class="cx">
</span><span class="cx"> RefPtr<Uint16Array> keyURIArray = Uint16Array::create(initDataBuffer, 4, keyURI.length());
</span><del>- keyURIArray->setRange(keyURI.deprecatedCharacters(), keyURI.length() / sizeof(unsigned char), 0);
</del><ins>+ keyURIArray->setRange(StringView(keyURI).upconvertedCharacters(), keyURI.length() / sizeof(unsigned char), 0);
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(ENCRYPTED_MEDIA)
</span><span class="cx"> if (!player()->keyNeeded("com.apple.lskd", emptyString(), static_cast<const unsigned char*>(initDataBuffer->data()), initDataBuffer->byteLength()))
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsharfbuzzHarfBuzzFaceCairocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> #include FT_TRUETYPE_TABLES_H
</span><span class="cx"> #include <hb.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -112,7 +113,7 @@
</span><span class="cx"> if (result.isNewEntry) {
</span><span class="cx"> cairo_glyph_t* glyphs = 0;
</span><span class="cx"> int numGlyphs = 0;
</span><del>- CString utf8Codepoint = UTF8Encoding().encode(reinterpret_cast<UChar*>(&unicode), 1, QuestionMarksForUnencodables);
</del><ins>+ CString utf8Codepoint = UTF8Encoding().encode(StringView(reinterpret_cast<UChar*>(&unicode), 1), QuestionMarksForUnencodables);
</ins><span class="cx"> if (cairo_scaled_font_text_to_glyphs(scaledFont, 0, 0, utf8Codepoint.data(), utf8Codepoint.length(), &glyphs, &numGlyphs, 0, 0, 0) != CAIRO_STATUS_SUCCESS)
</span><span class="cx"> return false;
</span><span class="cx"> if (!numGlyphs)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkDataURLcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/DataURL.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/DataURL.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/network/DataURL.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #include "TextEncoding.h"
</span><span class="cx"> #include <wtf/text/Base64.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -84,7 +85,7 @@
</span><span class="cx"> data = decodeURLEscapeSequences(data, encoding);
</span><span class="cx"> handle->client()->didReceiveResponse(handle, response);
</span><span class="cx">
</span><del>- CString encodedData = encoding.encode(data.deprecatedCharacters(), data.length(), URLEncodedEntitiesForUnencodables);
</del><ins>+ CString encodedData = encoding.encode(data, URLEncodedEntitiesForUnencodables);
</ins><span class="cx"> response.setExpectedContentLength(encodedData.length());
</span><span class="cx"> if (encodedData.length())
</span><span class="cx"> handle->client()->didReceiveData(handle, encodedData.data(), encodedData.length(), 0);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkFormDataBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/FormDataBuilder.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/FormDataBuilder.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/network/FormDataBuilder.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -28,12 +28,12 @@
</span><span class="cx"> #include "Blob.h"
</span><span class="cx"> #include "Document.h"
</span><span class="cx"> #include "TextEncoding.h"
</span><del>-
</del><span class="cx"> #include <limits>
</span><span class="cx"> #include <wtf/Assertions.h>
</span><span class="cx"> #include <wtf/HexNumber.h>
</span><del>-#include <wtf/text/CString.h>
</del><span class="cx"> #include <wtf/RandomNumber.h>
</span><ins>+#include <wtf/text/CString.h>
+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -61,12 +61,11 @@
</span><span class="cx"> size_t length = string.length();
</span><span class="cx"> for (size_t i = 0; i < length; ++i) {
</span><span class="cx"> char c = string.data()[i];
</span><del>-
</del><span class="cx"> switch (c) {
</span><del>- case 0x0a:
</del><ins>+ case 0xA:
</ins><span class="cx"> append(buffer, "%0A");
</span><span class="cx"> break;
</span><del>- case 0x0d:
</del><ins>+ case 0xD:
</ins><span class="cx"> append(buffer, "%0D");
</span><span class="cx"> break;
</span><span class="cx"> case '"':
</span><span class="lines">@@ -86,11 +85,9 @@
</span><span class="cx"> Vector<String> charsets;
</span><span class="cx"> normalizedAcceptCharset.split(' ', charsets);
</span><span class="cx">
</span><del>- TextEncoding encoding;
-
- Vector<String>::const_iterator end = charsets.end();
- for (Vector<String>::const_iterator it = charsets.begin(); it != end; ++it) {
- if ((encoding = TextEncoding(*it)).isValid())
</del><ins>+ for (auto& charset : charsets) {
+ TextEncoding encoding(charset);
+ if (encoding.isValid())
</ins><span class="cx"> return encoding;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -165,7 +162,7 @@
</span><span class="cx"> // FIXME: This loses data irreversibly if the filename includes characters you can't encode
</span><span class="cx"> // in the website's character set.
</span><span class="cx"> append(buffer, "; filename=\"");
</span><del>- appendQuotedString(buffer, encoding.encode(filename.deprecatedCharacters(), filename.length(), QuestionMarksForUnencodables));
</del><ins>+ appendQuotedString(buffer, encoding.encode(filename, QuestionMarksForUnencodables));
</ins><span class="cx"> append(buffer, '"');
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformsqlSQLiteStatementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> #include "SQLValue.h"
</span><span class="cx"> #include <sqlite3.h>
</span><span class="cx"> #include <wtf/Assertions.h>
</span><del>-#include <wtf/text/StringImpl.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> // SQLite 3.6.16 makes sqlite3_prepare_v2 automatically retry preparing the statement
</span><span class="cx"> // once if the database scheme has changed. We rely on this behavior.
</span><span class="lines">@@ -177,12 +177,13 @@
</span><span class="cx"> {
</span><span class="cx"> // String::characters() returns 0 for the empty string, which SQLite
</span><span class="cx"> // treats as a null, so we supply a non-null pointer for that case.
</span><ins>+ auto upconvertedCharacters = StringView(text).upconvertedCharacters();
</ins><span class="cx"> UChar anyCharacter = 0;
</span><span class="cx"> const UChar* characters;
</span><span class="cx"> if (text.isEmpty() && !text.isNull())
</span><span class="cx"> characters = &anyCharacter;
</span><span class="cx"> else
</span><del>- characters = text.deprecatedCharacters();
</del><ins>+ characters = upconvertedCharacters;
</ins><span class="cx">
</span><span class="cx"> return bindBlob(index, characters, text.length() * sizeof(UChar));
</span><span class="cx"> }
</span><span class="lines">@@ -195,12 +196,13 @@
</span><span class="cx">
</span><span class="cx"> // String::characters() returns 0 for the empty string, which SQLite
</span><span class="cx"> // treats as a null, so we supply a non-null pointer for that case.
</span><ins>+ auto upconvertedCharacters = StringView(text).upconvertedCharacters();
</ins><span class="cx"> UChar anyCharacter = 0;
</span><span class="cx"> const UChar* characters;
</span><span class="cx"> if (text.isEmpty() && !text.isNull())
</span><span class="cx"> characters = &anyCharacter;
</span><span class="cx"> else
</span><del>- characters = text.deprecatedCharacters();
</del><ins>+ characters = upconvertedCharacters;
</ins><span class="cx">
</span><span class="cx"> return sqlite3_bind_text16(m_statement, index, characters, sizeof(UChar) * text.length(), SQLITE_TRANSIENT);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextDecodeEscapeSequencesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/DecodeEscapeSequences.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/DecodeEscapeSequences.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/DecodeEscapeSequences.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -51,19 +51,19 @@
</span><span class="cx"> }
</span><span class="cx"> return runEnd;
</span><span class="cx"> }
</span><del>- static String decodeRun(const UChar* run, size_t runLength, const TextEncoding&)
</del><ins>+ static String decodeRun(StringView run, const TextEncoding&)
</ins><span class="cx"> {
</span><span class="cx"> // Each %u-escape sequence represents a UTF-16 code unit.
</span><span class="cx"> // See <http://www.w3.org/International/iri-edit/draft-duerst-iri.html#anchor29>.
</span><span class="cx"> // For 16-bit escape sequences, we know that findEndOfRun() has given us a contiguous run of sequences
</span><span class="cx"> // without any intervening characters, so decode the run without additional checks.
</span><del>- size_t numberOfSequences = runLength / sequenceSize;
</del><ins>+ auto numberOfSequences = run.length() / sequenceSize;
</ins><span class="cx"> StringBuilder builder;
</span><span class="cx"> builder.reserveCapacity(numberOfSequences);
</span><span class="cx"> while (numberOfSequences--) {
</span><span class="cx"> UChar codeUnit = (toASCIIHexValue(run[2]) << 12) | (toASCIIHexValue(run[3]) << 8) | (toASCIIHexValue(run[4]) << 4) | toASCIIHexValue(run[5]);
</span><span class="cx"> builder.append(codeUnit);
</span><del>- run += sequenceSize;
</del><ins>+ run = run.substring(sequenceSize);
</ins><span class="cx"> }
</span><span class="cx"> return builder.toString();
</span><span class="cx"> }
</span><span class="lines">@@ -96,21 +96,20 @@
</span><span class="cx"> }
</span><span class="cx"> return runEnd;
</span><span class="cx"> }
</span><del>- static String decodeRun(const UChar* run, size_t runLength, const TextEncoding& encoding)
</del><ins>+ static String decodeRun(StringView run, const TextEncoding& encoding)
</ins><span class="cx"> {
</span><span class="cx"> // For URL escape sequences, we know that findEndOfRun() has given us a run where every %-sign introduces
</span><span class="cx"> // a valid escape sequence, but there may be characters between the sequences.
</span><span class="cx"> Vector<char, 512> buffer;
</span><del>- buffer.resize(runLength); // Unescaping hex sequences only makes the length smaller.
</del><ins>+ buffer.resize(run.length()); // Unescaping hex sequences only makes the length smaller.
</ins><span class="cx"> char* p = buffer.data();
</span><del>- const UChar* runEnd = run + runLength;
- while (run < runEnd) {
</del><ins>+ while (!run.isEmpty()) {
</ins><span class="cx"> if (run[0] == '%') {
</span><span class="cx"> *p++ = (toASCIIHexValue(run[1]) << 4) | toASCIIHexValue(run[2]);
</span><del>- run += sequenceSize;
</del><ins>+ run = run.substring(sequenceSize);
</ins><span class="cx"> } else {
</span><span class="cx"> *p++ = run[0];
</span><del>- run += 1;
</del><ins>+ run = run.substring(1);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> ASSERT(buffer.size() >= static_cast<size_t>(p - buffer.data())); // Prove buffer not overrun.
</span><span class="lines">@@ -134,7 +133,7 @@
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- String decoded = EscapeSequence::decodeRun(string.deprecatedCharacters() + encodedRunPosition, encodedRunEnd - encodedRunPosition, encoding);
</del><ins>+ String decoded = EscapeSequence::decodeRun(StringView(string).substring(encodedRunPosition, encodedRunEnd - encodedRunPosition), encoding);
</ins><span class="cx"> if (decoded.isEmpty())
</span><span class="cx"> continue;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextHyphenationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/Hyphenation.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/Hyphenation.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/Hyphenation.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include "Hyphenation.h"
</span><span class="cx">
</span><span class="cx"> #include "NotImplemented.h"
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -35,7 +36,7 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-size_t lastHyphenLocation(const UChar* /* characters */, size_t /* length */, size_t /* beforeIndex */, const AtomicString& /* localeIdentifier */)
</del><ins>+size_t lastHyphenLocation(StringView, size_t /* beforeIndex */, const AtomicString& /* localeIdentifier */)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> return 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextHyphenationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/Hyphenation.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/Hyphenation.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/Hyphenation.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> bool canHyphenate(const AtomicString& localeIdentifier);
</span><del>-size_t lastHyphenLocation(const UChar*, size_t length, size_t beforeIndex, const AtomicString& localeIdentifier);
</del><ins>+size_t lastHyphenLocation(StringView, size_t beforeIndex, const AtomicString& localeIdentifier);
</ins><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextTextBreakIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/TextBreakIterator.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/TextBreakIterator.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/TextBreakIterator.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> #include <mutex>
</span><span class="cx"> #include <wtf/Atomics.h>
</span><span class="cx"> #include <wtf/text/StringView.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -43,18 +42,21 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if !PLATFORM(IOS)
</span><ins>+
</ins><span class="cx"> static TextBreakIterator* initializeIteratorWithRules(const char* breakRules)
</span><span class="cx"> {
</span><span class="cx"> UParseError parseStatus;
</span><span class="cx"> UErrorCode openStatus = U_ZERO_ERROR;
</span><del>- String rules(breakRules);
- TextBreakIterator* iterator = reinterpret_cast<TextBreakIterator*>(ubrk_openRules(rules.deprecatedCharacters(), rules.length(), 0, 0, &parseStatus, &openStatus));
</del><ins>+ unsigned length = strlen(breakRules);
+ auto upconvertedCharacters = StringView(reinterpret_cast<const LChar*>(breakRules), length).upconvertedCharacters();
+ TextBreakIterator* iterator = reinterpret_cast<TextBreakIterator*>(ubrk_openRules(upconvertedCharacters, length, 0, 0, &parseStatus, &openStatus));
</ins><span class="cx"> ASSERT_WITH_MESSAGE(U_SUCCESS(openStatus), "ICU could not open a break iterator: %s (%d)", u_errorName(openStatus), openStatus);
</span><span class="cx"> return iterator;
</span><span class="cx"> }
</span><del>-#endif // !PLATFORM(IOS)
</del><span class="cx">
</span><ins>+#endif
</ins><span class="cx">
</span><ins>+
</ins><span class="cx"> // Iterator text setting
</span><span class="cx">
</span><span class="cx"> static TextBreakIterator* setTextForIterator(TextBreakIterator& iterator, StringView string)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextTextEncodingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/TextEncoding.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/TextEncoding.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/TextEncoding.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> #include <wtf/OwnPtr.h>
</span><span class="cx"> #include <wtf/StdLibExtras.h>
</span><span class="cx"> #include <wtf/text/CString.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -64,38 +64,41 @@
</span><span class="cx"> return newTextCodec(*this)->decode(data, length, true, stopOnError, sawError);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CString TextEncoding::encode(const UChar* characters, size_t length, UnencodableHandling handling) const
</del><ins>+CString TextEncoding::encode(StringView text, UnencodableHandling handling) const
</ins><span class="cx"> {
</span><span class="cx"> if (!m_name)
</span><span class="cx"> return CString();
</span><span class="cx">
</span><del>- if (!length)
</del><ins>+ if (text.isEmpty())
</ins><span class="cx"> return "";
</span><span class="cx">
</span><span class="cx"> // FIXME: What's the right place to do normalization?
</span><span class="cx"> // It's a little strange to do it inside the encode function.
</span><span class="cx"> // Perhaps normalization should be an explicit step done before calling encode.
</span><span class="cx">
</span><del>- const UChar* source = characters;
- size_t sourceLength = length;
</del><ins>+ auto upconvertedCharacters = text.upconvertedCharacters();
</ins><span class="cx">
</span><ins>+ const UChar* source = upconvertedCharacters;
+ size_t sourceLength = text.length();
+
</ins><span class="cx"> Vector<UChar> normalizedCharacters;
</span><span class="cx">
</span><span class="cx"> UErrorCode err = U_ZERO_ERROR;
</span><span class="cx"> if (unorm_quickCheck(source, sourceLength, UNORM_NFC, &err) != UNORM_YES) {
</span><span class="cx"> // First try using the length of the original string, since normalization to NFC rarely increases length.
</span><span class="cx"> normalizedCharacters.grow(sourceLength);
</span><del>- int32_t normalizedLength = unorm_normalize(source, length, UNORM_NFC, 0, normalizedCharacters.data(), length, &err);
</del><ins>+ int32_t normalizedLength = unorm_normalize(source, sourceLength, UNORM_NFC, 0, normalizedCharacters.data(), sourceLength, &err);
</ins><span class="cx"> if (err == U_BUFFER_OVERFLOW_ERROR) {
</span><span class="cx"> err = U_ZERO_ERROR;
</span><span class="cx"> normalizedCharacters.resize(normalizedLength);
</span><del>- normalizedLength = unorm_normalize(source, length, UNORM_NFC, 0, normalizedCharacters.data(), normalizedLength, &err);
</del><ins>+ normalizedLength = unorm_normalize(source, sourceLength, UNORM_NFC, 0, normalizedCharacters.data(), normalizedLength, &err);
</ins><span class="cx"> }
</span><span class="cx"> ASSERT(U_SUCCESS(err));
</span><span class="cx">
</span><span class="cx"> source = normalizedCharacters.data();
</span><span class="cx"> sourceLength = normalizedLength;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> return newTextCodec(*this)->encode(source, sourceLength, handling);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextTextEncodingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/TextEncoding.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/TextEncoding.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/TextEncoding.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> return decode(str, length, false, ignored);
</span><span class="cx"> }
</span><span class="cx"> String decode(const char*, size_t length, bool stopOnError, bool& sawError) const;
</span><del>- CString encode(const UChar*, size_t length, UnencodableHandling) const;
</del><ins>+ CString encode(StringView, UnencodableHandling) const;
</ins><span class="cx">
</span><span class="cx"> UChar backslashAsCurrencySymbol() const;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextTextEncodingRegistrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -336,12 +336,12 @@
</span><span class="cx"> const char* atomicCanonicalTextEncodingName(const String& alias)
</span><span class="cx"> {
</span><span class="cx"> if (!alias.length())
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> if (alias.is8Bit())
</span><del>- return atomicCanonicalTextEncodingName<LChar>(alias.characters8(), alias.length());
</del><ins>+ return atomicCanonicalTextEncodingName(alias.characters8(), alias.length());
</ins><span class="cx">
</span><del>- return atomicCanonicalTextEncodingName<UChar>(alias.deprecatedCharacters(), alias.length());
</del><ins>+ return atomicCanonicalTextEncodingName(alias.characters16(), alias.length());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool noExtendedTextEncodingNameUsed()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextcfHyphenationCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/cf/HyphenationCF.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/cf/HyphenationCF.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/platform/text/cf/HyphenationCF.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #include "TextBreakIteratorInternalICU.h"
</span><span class="cx"> #include <wtf/ListHashSet.h>
</span><span class="cx"> #include <wtf/RetainPtr.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -73,15 +74,13 @@
</span><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx"> }
</span><span class="cx">
</span><del>-size_t lastHyphenLocation(const UChar* characters, size_t length, size_t beforeIndex, const AtomicString& localeIdentifier)
</del><ins>+size_t lastHyphenLocation(StringView text, size_t beforeIndex, const AtomicString& localeIdentifier)
</ins><span class="cx"> {
</span><del>- RetainPtr<CFStringRef> string = adoptCF(CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, reinterpret_cast<const UniChar*>(characters), length, kCFAllocatorNull));
-
</del><span class="cx"> RetainPtr<CFLocaleRef> locale = cfLocaleCache().get(localeIdentifier);
</span><span class="cx"> ASSERT(locale);
</span><span class="cx">
</span><span class="cx"> CFOptionFlags searchAcrossWordBoundaries = 1;
</span><del>- CFIndex result = CFStringGetHyphenationLocationBeforeIndex(string.get(), beforeIndex, CFRangeMake(0, length), searchAcrossWordBoundaries, locale.get(), 0);
</del><ins>+ CFIndex result = CFStringGetHyphenationLocationBeforeIndex(text.createCFStringWithoutCopying().get(), beforeIndex, CFRangeMake(0, text.length()), searchAcrossWordBoundaries, locale.get(), 0);
</ins><span class="cx"> return result == kCFNotFound ? 0 : result;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -5277,9 +5277,9 @@
</span><span class="cx"> {
</span><span class="cx"> unsigned length = string.length();
</span><span class="cx">
</span><del>- if (length && string.is8Bit())
</del><ins>+ if (!length || string.is8Bit())
</ins><span class="cx"> return constructTextRunInternal(context, font, string.characters8(), length, style, expansion, flags);
</span><del>- return constructTextRunInternal(context, font, string.deprecatedCharacters(), length, style, expansion, flags);
</del><ins>+ return constructTextRunInternal(context, font, string.characters16(), length, style, expansion, flags);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderBlock* RenderBlock::createAnonymousWithParentRendererAndDisplay(const RenderObject* parent, EDisplay display)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderCombineTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderCombineText.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderCombineText.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/rendering/RenderCombineText.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -60,9 +60,6 @@
</span><span class="cx">
</span><span class="cx"> float RenderCombineText::width(unsigned from, unsigned length, const Font& font, float xPosition, HashSet<const SimpleFontData*>* fallbackFonts, GlyphOverflow* glyphOverflow) const
</span><span class="cx"> {
</span><del>- if (!deprecatedCharacters())
- return 0;
-
</del><span class="cx"> if (m_isCombined)
</span><span class="cx"> return font.size();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderText.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderText.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/rendering/RenderText.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -624,15 +624,15 @@
</span><span class="cx"> return font.width(RenderBlock::constructTextRun(renderer, font, style.hyphenString().string(), style));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static float maxWordFragmentWidth(RenderText* renderer, const RenderStyle& style, const Font& font, const UChar* word, int wordLength, int minimumPrefixLength, int minimumSuffixLength, int& suffixStart, HashSet<const SimpleFontData*>& fallbackFonts, GlyphOverflow& glyphOverflow)
</del><ins>+static float maxWordFragmentWidth(RenderText* renderer, const RenderStyle& style, const Font& font, StringView word, int minimumPrefixLength, unsigned minimumSuffixLength, int& suffixStart, HashSet<const SimpleFontData*>& fallbackFonts, GlyphOverflow& glyphOverflow)
</ins><span class="cx"> {
</span><span class="cx"> suffixStart = 0;
</span><del>- if (wordLength <= minimumSuffixLength)
</del><ins>+ if (word.length() <= minimumSuffixLength)
</ins><span class="cx"> return 0;
</span><span class="cx">
</span><span class="cx"> Vector<int, 8> hyphenLocations;
</span><del>- int hyphenLocation = wordLength - minimumSuffixLength;
- while ((hyphenLocation = lastHyphenLocation(word, wordLength, hyphenLocation, style.locale())) >= minimumPrefixLength)
</del><ins>+ int hyphenLocation = word.length() - minimumSuffixLength;
+ while ((hyphenLocation = lastHyphenLocation(word, hyphenLocation, style.locale())) >= minimumPrefixLength)
</ins><span class="cx"> hyphenLocations.append(hyphenLocation);
</span><span class="cx">
</span><span class="cx"> if (hyphenLocations.isEmpty())
</span><span class="lines">@@ -645,7 +645,7 @@
</span><span class="cx"> for (size_t k = 0; k < hyphenLocations.size(); ++k) {
</span><span class="cx"> int fragmentLength = hyphenLocations[k] - suffixStart;
</span><span class="cx"> StringBuilder fragmentWithHyphen;
</span><del>- fragmentWithHyphen.append(word + suffixStart, fragmentLength);
</del><ins>+ fragmentWithHyphen.append(word.substring(suffixStart, fragmentLength));
</ins><span class="cx"> fragmentWithHyphen.append(style.hyphenString());
</span><span class="cx">
</span><span class="cx"> TextRun run = RenderBlock::constructTextRun(renderer, font, fragmentWithHyphen.deprecatedCharacters(), fragmentWithHyphen.length(), style);
</span><span class="lines">@@ -797,7 +797,7 @@
</span><span class="cx">
</span><span class="cx"> if (w > maxWordWidth) {
</span><span class="cx"> int suffixStart;
</span><del>- float maxFragmentWidth = maxWordFragmentWidth(this, style, font, deprecatedCharacters() + i, wordLen, minimumPrefixLength, minimumSuffixLength, suffixStart, fallbackFonts, glyphOverflow);
</del><ins>+ float maxFragmentWidth = maxWordFragmentWidth(this, style, font, StringView(m_text).substring(i, wordLen), minimumPrefixLength, minimumSuffixLength, suffixStart, fallbackFonts, glyphOverflow);
</ins><span class="cx">
</span><span class="cx"> if (suffixStart) {
</span><span class="cx"> float suffixWidth;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderinglineBreakingContextInlineHeadersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/rendering/line/BreakingContextInlineHeaders.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -597,11 +597,11 @@
</span><span class="cx"> if (prefixLength < minimumPrefixLength)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- prefixLength = lastHyphenLocation(text->deprecatedCharacters() + lastSpace, pos - lastSpace, std::min(prefixLength, pos - lastSpace - minimumSuffixLength) + 1, localeIdentifier);
</del><ins>+ prefixLength = lastHyphenLocation(StringView(text->text()).substring(lastSpace, pos - lastSpace), std::min(prefixLength, pos - lastSpace - minimumSuffixLength) + 1, localeIdentifier);
</ins><span class="cx"> if (!prefixLength || prefixLength < minimumPrefixLength)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // When lastSapce is a space, which it always is except sometimes at the beginning of a line or after collapsed
</del><ins>+ // When lastSpace is a space, which it always is except sometimes at the beginning of a line or after collapsed
</ins><span class="cx"> // space, it should not count towards hyphenate-limit-before.
</span><span class="cx"> if (prefixLength == minimumPrefixLength) {
</span><span class="cx"> UChar characterAtLastSpace = text->characterAt(lastSpace);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextLayoutEnginecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -436,7 +436,8 @@
</span><span class="cx"> Vector<SVGTextMetrics>& visualMetricsValues = text->layoutAttributes()->textMetricsValues();
</span><span class="cx"> ASSERT(!visualMetricsValues.isEmpty());
</span><span class="cx">
</span><del>- const UChar* characters = text->deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(text->text()).upconvertedCharacters();
+ const UChar* characters = upconvertedCharacters;
</ins><span class="cx"> const Font& font = style->font();
</span><span class="cx">
</span><span class="cx"> SVGTextLayoutEngineSpacing spacingLayout(font);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextMetricscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx"> m_height = text->scaledFont().fontMetrics().floatHeight() / scalingFactor;
</span><span class="cx"> if (needsContext) {
</span><span class="cx"> m_glyph.isValid = true;
</span><del>- m_glyph.unicodeString = String(text->deprecatedCharacters() + position, length);
</del><ins>+ m_glyph.unicodeString = text->text()->substring(position, length);
</ins><span class="cx"> m_glyph.name = glyphName;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAnglecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAngle.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAngle.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGAngle.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -25,7 +25,7 @@
</span><span class="cx"> #include "ExceptionCode.h"
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx"> #include <wtf/MathExtras.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -140,7 +140,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> float valueInSpecifiedUnits = 0;
</span><del>- const UChar* ptr = value.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(value).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + value.length();
</span><span class="cx">
</span><span class="cx"> if (!parseNumber(ptr, end, valueInSpecifiedUnits, false)) {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAnimateMotionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAnimateMotionElement.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAnimateMotionElement.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGAnimateMotionElement.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> #include "SVGTransformList.h"
</span><span class="cx"> #include <wtf/MathExtras.h>
</span><span class="cx"> #include <wtf/StdLibExtras.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -156,7 +157,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (s.isEmpty())
</span><span class="cx"> return false;
</span><del>- const UChar* cur = s.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(s).upconvertedCharacters();
+ const UChar* cur = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = cur + s.length();
</span><span class="cx">
</span><span class="cx"> if (!skipOptionalSVGSpaces(cur, end))
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGAnimationElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGAnimationElement.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGAnimationElement.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGAnimationElement.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> #include "SVGNames.h"
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx"> #include <wtf/MathExtras.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -92,7 +93,9 @@
</span><span class="cx"> result.clear();
</span><span class="cx"> if (parse.isEmpty())
</span><span class="cx"> return;
</span><del>- const UChar* cur = parse.deprecatedCharacters();
</del><ins>+
+ auto upconvertedCharacters = StringView(parse).upconvertedCharacters();
+ const UChar* cur = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = cur + parse.length();
</span><span class="cx">
</span><span class="cx"> skipOptionalSVGSpaces(cur, end);
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFitToViewBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFitToViewBox.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFitToViewBox.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGFitToViewBox.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -29,15 +29,15 @@
</span><span class="cx"> #include "SVGNames.h"
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx"> #include "SVGPreserveAspectRatio.h"
</span><del>-#include <wtf/text/StringImpl.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> bool SVGFitToViewBox::parseViewBox(Document* doc, const String& s, FloatRect& viewBox)
</span><span class="cx"> {
</span><del>- const UChar* c = s.deprecatedCharacters();
- const UChar* end = c + s.length();
- return parseViewBox(doc, c, end, viewBox, true);
</del><ins>+ auto upconvertedCharacters = StringView(s).upconvertedCharacters();
+ const UChar* characters = upconvertedCharacters;
+ return parseViewBox(doc, characters, characters + s.length(), viewBox, true);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool SVGFitToViewBox::parseViewBox(Document* doc, const UChar*& c, const UChar* end, FloatRect& viewBox, bool validate)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontData.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontData.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGFontData.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -41,6 +41,8 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+static String createStringWithMirroredCharacters(StringView);
+
</ins><span class="cx"> SVGFontData::SVGFontData(SVGFontFaceElement* fontFaceElement)
</span><span class="cx"> : m_svgFontFaceElement(fontFaceElement)
</span><span class="cx"> , m_horizontalOriginX(fontFaceElement->horizontalOriginX())
</span><span class="lines">@@ -146,7 +148,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (mirror)
</span><del>- remainingTextInRun = createStringWithMirroredCharacters(remainingTextInRun.deprecatedCharacters(), remainingTextInRun.length());
</del><ins>+ remainingTextInRun = createStringWithMirroredCharacters(remainingTextInRun);
</ins><span class="cx"> if (!currentCharacter && arabicForms.isEmpty())
</span><span class="cx"> arabicForms = charactersWithArabicForm(remainingTextInRun, mirror);
</span><span class="cx">
</span><span class="lines">@@ -287,18 +289,16 @@
</span><span class="cx"> return haveGlyphs;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String SVGFontData::createStringWithMirroredCharacters(const UChar* characters, unsigned length) const
</del><ins>+String createStringWithMirroredCharacters(StringView string)
</ins><span class="cx"> {
</span><ins>+ unsigned length = string.length();
</ins><span class="cx"> StringBuilder mirroredCharacters;
</span><span class="cx"> mirroredCharacters.reserveCapacity(length);
</span><del>-
- unsigned i = 0;
- while (i < length) {
</del><ins>+ for (unsigned i = 0; i < length; ) {
</ins><span class="cx"> UChar32 character;
</span><del>- U16_NEXT(characters, i, length, character);
</del><ins>+ U16_NEXT(string, i, length, character);
</ins><span class="cx"> mirroredCharacters.append(u_charMirror(character));
</span><span class="cx"> }
</span><del>-
</del><span class="cx"> return mirroredCharacters.toString();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontData.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontData.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGFontData.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -52,8 +52,6 @@
</span><span class="cx"> bool fillBMPGlyphs(SVGFontElement*, GlyphPage* , unsigned offset, unsigned length, UChar* buffer, const SimpleFontData*) const;
</span><span class="cx"> bool fillNonBMPGlyphs(SVGFontElement*, GlyphPage* , unsigned offset, unsigned length, UChar* buffer, const SimpleFontData*) const;
</span><span class="cx">
</span><del>- String createStringWithMirroredCharacters(const UChar* characters, unsigned length) const;
-
</del><span class="cx"> // Ths SVGFontFaceElement is kept alive --
</span><span class="cx"> // 1) in the external font case: by the CSSFontFaceSource, which holds a reference to the external SVG document
</span><span class="cx"> // containing the element;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontElement.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontElement.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGFontElement.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -94,9 +94,9 @@
</span><span class="cx"> unsigned unicodeLength = unicode.length();
</span><span class="cx"> ASSERT(unicodeLength > 1);
</span><span class="cx">
</span><del>- const UChar* characters = unicode.deprecatedCharacters();
</del><span class="cx"> for (unsigned i = 0; i < unicodeLength; ++i) {
</span><del>- String lookupString(characters + i, 1);
</del><ins>+ UChar character = unicode[i];
+ String lookupString(&character, 1);
</ins><span class="cx"> m_glyphMap.collectGlyphsForString(lookupString, glyphs);
</span><span class="cx"> if (!glyphs.isEmpty()) {
</span><span class="cx"> glyphs.clear();
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGGlyphMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGGlyphMap.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGGlyphMap.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGGlyphMap.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -21,11 +21,12 @@
</span><span class="cx"> #define SVGGlyphMap_h
</span><span class="cx">
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><ins>+
</ins><span class="cx"> #include "SurrogatePairAwareTextIterator.h"
</span><span class="cx"> #include "SVGGlyph.h"
</span><del>-
</del><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -68,7 +69,8 @@
</span><span class="cx">
</span><span class="cx"> UChar32 character = 0;
</span><span class="cx"> unsigned clusterLength = 0;
</span><del>- SurrogatePairAwareTextIterator textIterator(unicodeString.deprecatedCharacters(), 0, length, length);
</del><ins>+ auto upconvertedCharacters = StringView(unicodeString).upconvertedCharacters();
+ SurrogatePairAwareTextIterator textIterator(upconvertedCharacters, 0, length, length);
</ins><span class="cx"> while (textIterator.consume(character, clusterLength)) {
</span><span class="cx"> node = currentLayer->get(character);
</span><span class="cx"> if (!node) {
</span><span class="lines">@@ -113,12 +115,12 @@
</span><span class="cx"> {
</span><span class="cx"> GlyphMapLayer* currentLayer = &m_rootLayer;
</span><span class="cx">
</span><del>- const UChar* characters = string.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(string).upconvertedCharacters();
</ins><span class="cx"> size_t length = string.length();
</span><span class="cx">
</span><span class="cx"> UChar32 character = 0;
</span><span class="cx"> unsigned clusterLength = 0;
</span><del>- SurrogatePairAwareTextIterator textIterator(characters, 0, length, length);
</del><ins>+ SurrogatePairAwareTextIterator textIterator(upconvertedCharacters, 0, length, length);
</ins><span class="cx"> while (textIterator.consume(character, clusterLength)) {
</span><span class="cx"> RefPtr<GlyphMapNode> node = currentLayer->get(character);
</span><span class="cx"> if (!node)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGGlyphRefElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGGlyphRefElement.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx"> #include "XLinkNames.h"
</span><span class="cx"> #include <wtf/text/AtomicString.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -66,7 +67,8 @@
</span><span class="cx">
</span><span class="cx"> void SVGGlyphRefElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
</span><span class="cx"> {
</span><del>- const UChar* startPtr = value.string().deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(value.string()).upconvertedCharacters();
+ const UChar* startPtr = upconvertedCharacters;
</ins><span class="cx"> const UChar* endPtr = startPtr + value.length();
</span><span class="cx">
</span><span class="cx"> // FIXME: We need some error handling here.
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGLengthcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGLength.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGLength.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGLength.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -29,9 +29,8 @@
</span><span class="cx"> #include "FloatConversion.h"
</span><span class="cx"> #include "SVGNames.h"
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><del>-
</del><span class="cx"> #include <wtf/MathExtras.h>
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -224,7 +223,8 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> float convertedNumber = 0;
</span><del>- const UChar* ptr = string.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(string).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + string.length();
</span><span class="cx">
</span><span class="cx"> if (!parseNumber(ptr, end, convertedNumber, false)) {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGLengthListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGLengthList.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGLengthList.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGLengthList.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -31,7 +31,8 @@
</span><span class="cx"> clear();
</span><span class="cx"> ExceptionCode ec = 0;
</span><span class="cx">
</span><del>- const UChar* ptr = value.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(value).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + value.length();
</span><span class="cx"> while (ptr < end) {
</span><span class="cx"> const UChar* start = ptr;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGNumberListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGNumberList.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGNumberList.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGNumberList.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -31,7 +31,8 @@
</span><span class="cx"> clear();
</span><span class="cx">
</span><span class="cx"> float number = 0;
</span><del>- const UChar* ptr = value.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(value).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + value.length();
</span><span class="cx">
</span><span class="cx"> // The spec strangely doesn't allow leading whitespace. We might choose to violate that intentionally. (section 4.1)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGParserUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGParserUtilities.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGParserUtilities.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGParserUtilities.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -26,9 +26,9 @@
</span><span class="cx"> #include "Document.h"
</span><span class="cx"> #include "FloatRect.h"
</span><span class="cx"> #include "SVGPointList.h"
</span><del>-
</del><span class="cx"> #include <limits>
</span><span class="cx"> #include <wtf/ASCIICType.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -164,7 +164,8 @@
</span><span class="cx">
</span><span class="cx"> bool parseNumberFromString(const String& string, float& number, bool skip)
</span><span class="cx"> {
</span><del>- const UChar* ptr = string.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(string).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + string.length();
</span><span class="cx"> return genericParseNumber(ptr, end, number, skip) && ptr == end;
</span><span class="cx"> }
</span><span class="lines">@@ -203,7 +204,9 @@
</span><span class="cx"> {
</span><span class="cx"> if (s.isEmpty())
</span><span class="cx"> return false;
</span><del>- const UChar* cur = s.deprecatedCharacters();
</del><ins>+
+ auto upconvertedCharacters = StringView(s).upconvertedCharacters();
+ const UChar* cur = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = cur + s.length();
</span><span class="cx">
</span><span class="cx"> if (!parseNumber(cur, end, x))
</span><span class="lines">@@ -219,7 +222,8 @@
</span><span class="cx">
</span><span class="cx"> bool parseRect(const String& string, FloatRect& rect)
</span><span class="cx"> {
</span><del>- const UChar* ptr = string.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(string).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + string.length();
</span><span class="cx"> skipOptionalSVGSpaces(ptr, end);
</span><span class="cx">
</span><span class="lines">@@ -236,7 +240,8 @@
</span><span class="cx"> {
</span><span class="cx"> if (points.isEmpty())
</span><span class="cx"> return true;
</span><del>- const UChar* cur = points.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(points).upconvertedCharacters();
+ const UChar* cur = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = cur + points.length();
</span><span class="cx">
</span><span class="cx"> skipOptionalSVGSpaces(cur, end);
</span><span class="lines">@@ -270,7 +275,8 @@
</span><span class="cx"> // FIXME: Parsing error detection is missing.
</span><span class="cx"> values.clear();
</span><span class="cx">
</span><del>- const UChar* ptr = input.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(input).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + input.length();
</span><span class="cx"> skipOptionalSVGSpaces(ptr, end);
</span><span class="cx">
</span><span class="lines">@@ -367,7 +373,8 @@
</span><span class="cx"> bool parseKerningUnicodeString(const String& input, UnicodeRanges& rangeList, HashSet<String>& stringList)
</span><span class="cx"> {
</span><span class="cx"> // FIXME: Parsing error detection is missing.
</span><del>- const UChar* ptr = input.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(input).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + input.length();
</span><span class="cx">
</span><span class="cx"> while (ptr < end) {
</span><span class="lines">@@ -394,7 +401,8 @@
</span><span class="cx"> {
</span><span class="cx"> Vector<String> values;
</span><span class="cx">
</span><del>- const UChar* ptr = input.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(input).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + input.length();
</span><span class="cx"> skipOptionalSVGSpaces(ptr, end);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPreserveAspectRatiocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPreserveAspectRatio.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPreserveAspectRatio.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGPreserveAspectRatio.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #include "ExceptionCode.h"
</span><span class="cx"> #include "FloatRect.h"
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><del>-#include <wtf/text/WTFString.h>
</del><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -58,7 +58,8 @@
</span><span class="cx">
</span><span class="cx"> void SVGPreserveAspectRatio::parse(const String& value)
</span><span class="cx"> {
</span><del>- const UChar* begin = value.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(value).upconvertedCharacters();
+ const UChar* begin = upconvertedCharacters;
</ins><span class="cx"> parseInternal(begin, begin + value.length(), true);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGStringListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGStringList.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGStringList.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGStringList.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -48,7 +48,8 @@
</span><span class="cx"> // TODO : more error checking/reporting
</span><span class="cx"> clear();
</span><span class="cx">
</span><del>- const UChar* ptr = data.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(data).upconvertedCharacters();
+ const UChar* ptr = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = ptr + data.length();
</span><span class="cx"> while (ptr < end) {
</span><span class="cx"> const UChar* start = ptr;
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGTransformListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGTransformList.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGTransformList.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGTransformList.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -74,7 +74,8 @@
</span><span class="cx">
</span><span class="cx"> void SVGTransformList::parse(const String& transform)
</span><span class="cx"> {
</span><del>- const UChar* start = transform.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(transform).upconvertedCharacters();
+ const UChar* start = upconvertedCharacters;
</ins><span class="cx"> if (!SVGTransformable::parseTransformAttribute(*this, start, start + transform.length()))
</span><span class="cx"> clear();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGTransformablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGTransformable.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGTransformable.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGTransformable.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #include "SVGNames.h"
</span><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx"> #include "SVGTransformList.h"
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -171,7 +172,8 @@
</span><span class="cx"> SVGTransform::SVGTransformType SVGTransformable::parseTransformType(const String& typeString)
</span><span class="cx"> {
</span><span class="cx"> unsigned short type = SVGTransform::SVG_TRANSFORM_UNKNOWN;
</span><del>- const UChar* characters = typeString.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(typeString).upconvertedCharacters();
+ const UChar* characters = upconvertedCharacters;
</ins><span class="cx"> parseAndSkipType(characters, characters + typeString.length(), type);
</span><span class="cx"> return static_cast<SVGTransform::SVGTransformType>(type);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGViewSpeccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGViewSpec.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGViewSpec.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGViewSpec.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -207,7 +207,8 @@
</span><span class="cx">
</span><span class="cx"> bool SVGViewSpec::parseViewSpec(const String& viewSpec)
</span><span class="cx"> {
</span><del>- const UChar* currViewSpec = viewSpec.deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(viewSpec).upconvertedCharacters();
+ const UChar* currViewSpec = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = currViewSpec + viewSpec.length();
</span><span class="cx">
</span><span class="cx"> if (currViewSpec >= end || !m_contextElement)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGZoomAndPanh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGZoomAndPan.h (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGZoomAndPan.h        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/svg/SVGZoomAndPan.h        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -24,6 +24,7 @@
</span><span class="cx"> #include "QualifiedName.h"
</span><span class="cx"> #include "SVGNames.h"
</span><span class="cx"> #include <wtf/HashSet.h>
</span><ins>+#include <wtf/text/StringView.h>
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -59,7 +60,8 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(target);
</span><span class="cx"> if (name == SVGNames::zoomAndPanAttr) {
</span><del>- const UChar* start = value.string().deprecatedCharacters();
</del><ins>+ auto upconvertedCharacters = StringView(value.string()).upconvertedCharacters();
+ const UChar* start = upconvertedCharacters;
</ins><span class="cx"> const UChar* end = start + value.length();
</span><span class="cx"> SVGZoomAndPanType zoomAndPan = SVGZoomAndPanUnknown;
</span><span class="cx"> parseZoomAndPan(start, end, zoomAndPan);
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLHttpRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLHttpRequest.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/xml/XMLHttpRequest.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -619,7 +619,7 @@
</span><span class="cx">
</span><span class="cx"> // FIXME: this should use value of document.inputEncoding to determine the encoding to use.
</span><span class="cx"> TextEncoding encoding = UTF8Encoding();
</span><del>- m_requestEntityBody = FormData::create(encoding.encode(body.deprecatedCharacters(), body.length(), EntitiesForUnencodables));
</del><ins>+ m_requestEntityBody = FormData::create(encoding.encode(body, EntitiesForUnencodables));
</ins><span class="cx"> if (m_upload)
</span><span class="cx"> m_requestEntityBody->setAlwaysStream(true);
</span><span class="cx"> }
</span><span class="lines">@@ -646,7 +646,7 @@
</span><span class="cx"> m_requestHeaders.set("Content-Type", contentType);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- m_requestEntityBody = FormData::create(UTF8Encoding().encode(body.deprecatedCharacters(), body.length(), EntitiesForUnencodables));
</del><ins>+ m_requestEntityBody = FormData::create(UTF8Encoding().encode(body, EntitiesForUnencodables));
</ins><span class="cx"> if (m_upload)
</span><span class="cx"> m_requestEntityBody->setAlwaysStream(true);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXSLStyleSheetLibxsltcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp (165847 => 165848)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp        2014-03-18 21:53:35 UTC (rev 165847)
+++ trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp        2014-03-18 21:57:44 UTC (rev 165848)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #include "XMLDocumentParserScope.h"
</span><span class="cx"> #include "XSLImportRule.h"
</span><span class="cx"> #include "XSLTProcessor.h"
</span><del>-
</del><span class="cx"> #include <libxml/uri.h>
</span><span class="cx"> #include <libxslt/xsltutils.h>
</span><span class="cx">
</span><span class="lines">@@ -148,7 +147,8 @@
</span><span class="cx">
</span><span class="cx"> XMLDocumentParserScope scope(cachedResourceLoader(), XSLTProcessor::genericErrorFunc, XSLTProcessor::parseErrorFunc, console);
</span><span class="cx">
</span><del>- const char* buffer = reinterpret_cast<const char*>(string.deprecatedCharacters());
</del><ins>+ auto upconvertedCharacters = StringView(string).upconvertedCharacters();
+ const char* buffer = reinterpret_cast<const char*>(upconvertedCharacters.get());
</ins><span class="cx"> int size = string.length() * sizeof(UChar);
</span><span class="cx">
</span><span class="cx"> xmlParserCtxtPtr ctxt = xmlCreateMemoryParserCtxt(buffer, size);
</span></span></pre>
</div>
</div>
</body>
</html>