<!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>[183031] 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/183031">183031</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-04-20 15:07:31 -0700 (Mon, 20 Apr 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Cleanup some StringBuilder use
https://bugs.webkit.org/show_bug.cgi?id=143550
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-04-20
Reviewed by Darin Adler.
Source/JavaScriptCore:
* runtime/Symbol.cpp:
(JSC::Symbol::descriptiveString):
* runtime/TypeProfiler.cpp:
(JSC::TypeProfiler::typeInformationForExpressionAtOffset):
* runtime/TypeSet.cpp:
(JSC::TypeSet::toJSONString):
(JSC::StructureShape::propertyHash):
(JSC::StructureShape::stringRepresentation):
(JSC::StructureShape::toJSONString):
Source/WebCore:
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::youTubeURL):
* css/CSSAnimationTriggerScrollValue.cpp:
(WebCore::CSSAnimationTriggerScrollValue::customCSSText):
* css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::customCSSText):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS):
(WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS):
(WebCore::CaptionUserPreferencesMediaAF::cssPropertyWithTextEdgeColor):
(WebCore::CaptionUserPreferencesMediaAF::colorPropertyCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):
* page/EventSource.cpp:
(WebCore::EventSource::didReceiveResponse):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeCSSStyleSheet):
* platform/graphics/OpenGLShims.cpp:
(WebCore::lookupOpenGLFunctionAddress):
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::generateHashedName):
* platform/text/DateTimeFormat.cpp:
(WebCore::DateTimeFormat::quoteAndAppendLiteral):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeRenderRegionList):
* testing/MicroTaskTest.cpp:
(WebCore::MicroTaskTest::run):
* testing/MockContentFilterSettings.cpp:
(WebCore::MockContentFilterSettings::unblockRequestURL):
Source/WebKit2:
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::buildObjectStoreStatement):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::v2RecordsTableSchema):
* Shared/Databases/IndexedDB/IDBUtilities.cpp:
(WebKit::uniqueDatabaseIdentifier):
* UIProcess/API/APIUserScript.cpp:
(API::UserScript::generateUniqueURL):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::didReceiveInvalidMessage):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::combinedSecurityOriginIdentifier):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeSymbolcpp">trunk/Source/JavaScriptCore/runtime/Symbol.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeProfilercpp">trunk/Source/JavaScriptCore/runtime/TypeProfiler.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeTypeSetcpp">trunk/Source/JavaScriptCore/runtime/TypeSet.cpp</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp">trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSAnimationTriggerScrollValuecpp">trunk/Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSCanvasValuecpp">trunk/Source/WebCore/css/CSSCanvasValue.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLCanvasElementcpp">trunk/Source/WebCore/html/HTMLCanvasElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp">trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventSourcecpp">trunk/Source/WebCore/page/EventSource.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePageSerializercpp">trunk/Source/WebCore/page/PageSerializer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsOpenGLShimscpp">trunk/Source/WebCore/platform/graphics/OpenGLShims.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationInbandTextTrackPrivateAVFcpp">trunk/Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopenglGraphicsContext3DOpenGLCommoncpp">trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformtextDateTimeFormatcpp">trunk/Source/WebCore/platform/text/DateTimeFormat.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTreeAsTextcpp">trunk/Source/WebCore/rendering/RenderTreeAsText.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingMicroTaskTestcpp">trunk/Source/WebCore/testing/MicroTaskTest.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingMockContentFilterSettingscpp">trunk/Source/WebCore/testing/MockContentFilterSettings.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorcpp">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedDatabasesIndexedDBIDBUtilitiescpp">trunk/Source/WebKit2/Shared/Databases/IndexedDB/IDBUtilities.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIUserScriptcpp">trunk/Source/WebKit2/UIProcess/API/APIUserScript.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolcpp">trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendcpp">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-04-20 Joseph Pecoraro <pecoraro@apple.com>
+
+ Cleanup some StringBuilder use
+ https://bugs.webkit.org/show_bug.cgi?id=143550
+
+ Reviewed by Darin Adler.
+
+ * runtime/Symbol.cpp:
+ (JSC::Symbol::descriptiveString):
+ * runtime/TypeProfiler.cpp:
+ (JSC::TypeProfiler::typeInformationForExpressionAtOffset):
+ * runtime/TypeSet.cpp:
+ (JSC::TypeSet::toJSONString):
+ (JSC::StructureShape::propertyHash):
+ (JSC::StructureShape::stringRepresentation):
+ (JSC::StructureShape::toJSONString):
+
</ins><span class="cx"> 2015-04-20 Mark Lam <mark.lam@apple.com>
</span><span class="cx">
</span><span class="cx"> Add debugging tools to test if a given pointer is a valid object and in the heap.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeSymbolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/Symbol.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/Symbol.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/JavaScriptCore/runtime/Symbol.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -95,11 +95,7 @@
</span><span class="cx">
</span><span class="cx"> String Symbol::descriptiveString() const
</span><span class="cx"> {
</span><del>- StringBuilder builder;
- builder.appendLiteral("Symbol(");
- builder.append(privateName().uid());
- builder.append(')');
- return builder.toString();
</del><ins>+ return makeString("Symbol(", String(privateName().uid()), ')');
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeProfilercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeProfiler.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeProfiler.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/JavaScriptCore/runtime/TypeProfiler.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -82,27 +82,27 @@
</span><span class="cx">
</span><span class="cx"> StringBuilder json;
</span><span class="cx">
</span><del>- json.append("{");
</del><ins>+ json.append('{');
</ins><span class="cx">
</span><del>- json.append("\"globalTypeSet\":");
</del><ins>+ json.appendLiteral("\"globalTypeSet\":");
</ins><span class="cx"> if (location->m_globalTypeSet && location->m_globalVariableID != TypeProfilerNoGlobalIDExists)
</span><span class="cx"> json.append(location->m_globalTypeSet->toJSONString());
</span><span class="cx"> else
</span><del>- json.append("null");
- json.append(",");
</del><ins>+ json.appendLiteral("null");
+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"instructionTypeSet\":");
</del><ins>+ json.appendLiteral("\"instructionTypeSet\":");
</ins><span class="cx"> json.append(location->m_instructionTypeSet->toJSONString());
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"isOverflown\":");
</del><ins>+ json.appendLiteral("\"isOverflown\":");
</ins><span class="cx"> if (location->m_instructionTypeSet->isOverflown() || (location->m_globalTypeSet && location->m_globalTypeSet->isOverflown()))
</span><del>- json.append("true");
</del><ins>+ json.appendLiteral("true");
</ins><span class="cx"> else
</span><del>- json.append("false");
</del><ins>+ json.appendLiteral("false");
</ins><span class="cx">
</span><span class="cx">
</span><del>- json.append("}");
</del><ins>+ json.append('}');
</ins><span class="cx">
</span><span class="cx"> return json.toString();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeTypeSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/TypeSet.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/JavaScriptCore/runtime/TypeSet.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -250,73 +250,73 @@
</span><span class="cx"> // structures: 'Array<JSON<StructureShape>>'
</span><span class="cx">
</span><span class="cx"> StringBuilder json;
</span><del>- json.append("{");
</del><ins>+ json.append('{');
</ins><span class="cx">
</span><del>- json.append("\"displayTypeName\":");
- json.append("\"");
</del><ins>+ json.appendLiteral("\"displayTypeName\":");
+ json.append('"');
</ins><span class="cx"> json.append(displayName());
</span><del>- json.append("\"");
- json.append(",");
</del><ins>+ json.append('"');
+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"primitiveTypeNames\":");
- json.append("[");
</del><ins>+ json.appendLiteral("\"primitiveTypeNames\":");
+ json.append('[');
</ins><span class="cx"> bool hasAnItem = false;
</span><span class="cx"> if (m_seenTypes & TypeUndefined) {
</span><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"Undefined\"");
</del><ins>+ json.appendLiteral("\"Undefined\"");
</ins><span class="cx"> }
</span><span class="cx"> if (m_seenTypes & TypeNull) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"Null\"");
</del><ins>+ json.appendLiteral("\"Null\"");
</ins><span class="cx"> }
</span><span class="cx"> if (m_seenTypes & TypeBoolean) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"Boolean\"");
</del><ins>+ json.appendLiteral("\"Boolean\"");
</ins><span class="cx"> }
</span><span class="cx"> if (m_seenTypes & TypeMachineInt) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"Integer\"");
</del><ins>+ json.appendLiteral("\"Integer\"");
</ins><span class="cx"> }
</span><span class="cx"> if (m_seenTypes & TypeNumber) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"Number\"");
</del><ins>+ json.appendLiteral("\"Number\"");
</ins><span class="cx"> }
</span><span class="cx"> if (m_seenTypes & TypeString) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"String\"");
</del><ins>+ json.appendLiteral("\"String\"");
</ins><span class="cx"> }
</span><span class="cx"> if (m_seenTypes & TypeSymbol) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><del>- json.append("\"Symbol\"");
</del><ins>+ json.appendLiteral("\"Symbol\"");
</ins><span class="cx"> }
</span><del>- json.append("]");
</del><ins>+ json.append(']');
</ins><span class="cx">
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"structures\":");
- json.append("[");
</del><ins>+ json.appendLiteral("\"structures\":");
+ json.append('[');
</ins><span class="cx"> hasAnItem = false;
</span><span class="cx"> for (size_t i = 0; i < m_structureHistory.size(); i++) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><span class="cx"> json.append(m_structureHistory[i]->toJSONString());
</span><span class="cx"> }
</span><del>- json.append("]");
</del><ins>+ json.append(']');
</ins><span class="cx">
</span><del>- json.append("}");
</del><ins>+ json.append('}');
</ins><span class="cx"> return json.toString();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx">
</span><span class="cx"> if (m_proto) {
</span><span class="cx"> builder.append(':');
</span><del>- builder.append("__proto__");
</del><ins>+ builder.appendLiteral("__proto__");
</ins><span class="cx"> builder.append(m_proto->propertyHash());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -409,13 +409,13 @@
</span><span class="cx"> for (auto it = curShape->m_fields.begin(), end = curShape->m_fields.end(); it != end; ++it) {
</span><span class="cx"> String prop((*it).get());
</span><span class="cx"> representation.append(prop);
</span><del>- representation.append(", ");
</del><ins>+ representation.appendLiteral(", ");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (curShape->m_proto) {
</span><del>- String prot = makeString("__proto__ [", curShape->m_proto->m_constructorName, ']');
- representation.append(prot);
- representation.append(", ");
</del><ins>+ representation.appendLiteral("__proto__ [");
+ representation.append(curShape->m_proto->m_constructorName);
+ representation.appendLiteral("], ");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> curShape = curShape->m_proto;
</span><span class="lines">@@ -438,60 +438,60 @@
</span><span class="cx"> // proto: 'JSON<StructureShape> | null'
</span><span class="cx">
</span><span class="cx"> StringBuilder json;
</span><del>- json.append("{");
</del><ins>+ json.append('{');
</ins><span class="cx">
</span><del>- json.append("\"constructorName\":");
- json.append("\"");
</del><ins>+ json.appendLiteral("\"constructorName\":");
+ json.append('"');
</ins><span class="cx"> json.append(m_constructorName);
</span><del>- json.append("\"");
- json.append(",");
</del><ins>+ json.append('"');
+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"isInDictionaryMode\":");
</del><ins>+ json.appendLiteral("\"isInDictionaryMode\":");
</ins><span class="cx"> if (m_isInDictionaryMode)
</span><del>- json.append("true");
</del><ins>+ json.appendLiteral("true");
</ins><span class="cx"> else
</span><del>- json.append("false");
- json.append(",");
</del><ins>+ json.appendLiteral("false");
+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"fields\":");
- json.append("[");
</del><ins>+ json.appendLiteral("\"fields\":");
+ json.append('[');
</ins><span class="cx"> bool hasAnItem = false;
</span><span class="cx"> for (auto it = m_fields.begin(), end = m_fields.end(); it != end; ++it) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><span class="cx">
</span><span class="cx"> String fieldName((*it).get());
</span><del>- json.append("\"");
</del><ins>+ json.append('"');
</ins><span class="cx"> json.append(fieldName);
</span><del>- json.append("\"");
</del><ins>+ json.append('"');
</ins><span class="cx"> }
</span><del>- json.append("]");
- json.append(",");
</del><ins>+ json.append(']');
+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"optionalFields\":");
- json.append("[");
</del><ins>+ json.appendLiteral("\"optionalFields\":");
+ json.append('[');
</ins><span class="cx"> hasAnItem = false;
</span><span class="cx"> for (auto it = m_optionalFields.begin(), end = m_optionalFields.end(); it != end; ++it) {
</span><span class="cx"> if (hasAnItem)
</span><del>- json.append(",");
</del><ins>+ json.append(',');
</ins><span class="cx"> hasAnItem = true;
</span><span class="cx">
</span><span class="cx"> String fieldName((*it).get());
</span><del>- json.append("\"");
</del><ins>+ json.append('"');
</ins><span class="cx"> json.append(fieldName);
</span><del>- json.append("\"");
</del><ins>+ json.append('"');
</ins><span class="cx"> }
</span><del>- json.append("]");
- json.append(",");
</del><ins>+ json.append(']');
+ json.append(',');
</ins><span class="cx">
</span><del>- json.append("\"proto\":");
</del><ins>+ json.appendLiteral("\"proto\":");
</ins><span class="cx"> if (m_proto)
</span><span class="cx"> json.append(m_proto->toJSONString());
</span><span class="cx"> else
</span><del>- json.append("null");
</del><ins>+ json.appendLiteral("null");
</ins><span class="cx">
</span><del>- json.append("}");
</del><ins>+ json.append('}');
</ins><span class="cx">
</span><span class="cx"> return json.toString();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/ChangeLog        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -1,3 +1,46 @@
</span><ins>+2015-04-20 Joseph Pecoraro <pecoraro@apple.com>
+
+ Cleanup some StringBuilder use
+ https://bugs.webkit.org/show_bug.cgi?id=143550
+
+ Reviewed by Darin Adler.
+
+ * Modules/plugins/YouTubePluginReplacement.cpp:
+ (WebCore::YouTubePluginReplacement::youTubeURL):
+ * css/CSSAnimationTriggerScrollValue.cpp:
+ (WebCore::CSSAnimationTriggerScrollValue::customCSSText):
+ * css/CSSCanvasValue.cpp:
+ (WebCore::CSSCanvasValue::customCSSText):
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::createImageBuffer):
+ * page/CaptionUserPreferencesMediaAF.cpp:
+ (WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS):
+ (WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS):
+ (WebCore::CaptionUserPreferencesMediaAF::cssPropertyWithTextEdgeColor):
+ (WebCore::CaptionUserPreferencesMediaAF::colorPropertyCSS):
+ (WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
+ (WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):
+ * page/EventSource.cpp:
+ (WebCore::EventSource::didReceiveResponse):
+ * page/PageSerializer.cpp:
+ (WebCore::PageSerializer::serializeCSSStyleSheet):
+ * platform/graphics/OpenGLShims.cpp:
+ (WebCore::lookupOpenGLFunctionAddress):
+ * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
+ (WebCore::InbandTextTrackPrivateAVF::processCueAttributes):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ (WebCore::generateHashedName):
+ * platform/text/DateTimeFormat.cpp:
+ (WebCore::DateTimeFormat::quoteAndAppendLiteral):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::logLayerInfo):
+ * rendering/RenderTreeAsText.cpp:
+ (WebCore::writeRenderRegionList):
+ * testing/MicroTaskTest.cpp:
+ (WebCore::MicroTaskTest::run):
+ * testing/MockContentFilterSettings.cpp:
+ (WebCore::MockContentFilterSettings::unblockRequestURL):
+
</ins><span class="cx"> 2015-04-20 Said Abou-Hallawa <sabouhallawa@apple.com>
</span><span class="cx">
</span><span class="cx"> SVGFitToViewBox::viewBoxToViewTransform() has to count for zero physical width and height before calling SVGPreserveAspectRatio::getCTM()
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -326,13 +326,13 @@
</span><span class="cx"> // See: <rdar://problem/11535155>
</span><span class="cx"> StringBuilder finalURL;
</span><span class="cx"> if (isYouTubeShortenedURL)
</span><del>- finalURL.append("http://www.youtube.com");
</del><ins>+ finalURL.appendLiteral("http://www.youtube.com");
</ins><span class="cx"> else
</span><span class="cx"> finalURL.append(srcURLPrefix);
</span><span class="cx"> finalURL.appendLiteral("/embed/");
</span><span class="cx"> finalURL.append(videoID);
</span><span class="cx"> if (!query.isEmpty()) {
</span><del>- finalURL.appendLiteral("?");
</del><ins>+ finalURL.append('?');
</ins><span class="cx"> finalURL.append(query);
</span><span class="cx"> }
</span><span class="cx"> return finalURL.toString();
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSAnimationTriggerScrollValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -35,10 +35,10 @@
</span><span class="cx"> String CSSAnimationTriggerScrollValue::customCSSText() const
</span><span class="cx"> {
</span><span class="cx"> StringBuilder result;
</span><del>- result.append("container-scroll(");
</del><ins>+ result.appendLiteral("container-scroll(");
</ins><span class="cx"> result.append(m_startValue->cssText());
</span><span class="cx"> if (m_endValue) {
</span><del>- result.append(", ");
</del><ins>+ result.appendLiteral(", ");
</ins><span class="cx"> result.append(m_endValue->cssText());
</span><span class="cx"> }
</span><span class="cx"> result.append(')');
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSCanvasValuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSCanvasValue.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSCanvasValue.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/css/CSSCanvasValue.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx">
</span><span class="cx"> #include "ImageBuffer.h"
</span><span class="cx"> #include "RenderElement.h"
</span><del>-#include <wtf/text/StringBuilder.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -40,11 +39,7 @@
</span><span class="cx">
</span><span class="cx"> String CSSCanvasValue::customCSSText() const
</span><span class="cx"> {
</span><del>- StringBuilder result;
- result.appendLiteral("-webkit-canvas(");
- result.append(m_name);
- result.append(')');
- return result.toString();
</del><ins>+ return makeString("-webkit-canvas(", m_name, ')');
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void CSSCanvasValue::canvasChanged(HTMLCanvasElement&, const FloatRect& changedRect)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLCanvasElement.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/html/HTMLCanvasElement.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -558,9 +558,9 @@
</span><span class="cx">
</span><span class="cx"> if (deviceSize.width() * deviceSize.height() > MaxCanvasArea) {
</span><span class="cx"> StringBuilder stringBuilder;
</span><del>- stringBuilder.append("Canvas area exceeds the maximum limit (width * height > ");
</del><ins>+ stringBuilder.appendLiteral("Canvas area exceeds the maximum limit (width * height > ");
</ins><span class="cx"> stringBuilder.appendNumber(MaxCanvasArea);
</span><del>- stringBuilder.append(").");
</del><ins>+ stringBuilder.appendLiteral(").");
</ins><span class="cx"> document().addConsoleMessage(MessageSource::JS, MessageLevel::Warning, stringBuilder.toString());
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -234,12 +234,7 @@
</span><span class="cx"> if (!opacity)
</span><span class="cx"> return windowStyle;
</span><span class="cx">
</span><del>- StringBuilder builder;
- builder.append(windowStyle);
- builder.append(getPropertyNameString(CSSPropertyPadding));
- builder.append(": .4em !important;");
-
- return builder.toString();
</del><ins>+ return makeString(windowStyle, getPropertyNameString(CSSPropertyPadding), ": .4em !important;");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> String CaptionUserPreferencesMediaAF::captionsBackgroundCSS() const
</span><span class="lines">@@ -300,7 +295,7 @@
</span><span class="cx"> builder.append(getPropertyNameString(CSSPropertyBorderRadius));
</span><span class="cx"> builder.append(String::format(":%.02fpx", radius));
</span><span class="cx"> if (behavior == kMACaptionAppearanceBehaviorUseValue)
</span><del>- builder.append(" !important");
</del><ins>+ builder.appendLiteral(" !important");
</ins><span class="cx"> builder.append(';');
</span><span class="cx">
</span><span class="cx"> return builder.toString();
</span><span class="lines">@@ -327,7 +322,7 @@
</span><span class="cx"> builder.append(' ');
</span><span class="cx"> builder.append(captionsEdgeColorForTextColor(textColor).serialized());
</span><span class="cx"> if (important)
</span><del>- builder.append(" !important");
</del><ins>+ builder.appendLiteral(" !important");
</ins><span class="cx"> builder.append(';');
</span><span class="cx">
</span><span class="cx"> return builder.toString();
</span><span class="lines">@@ -341,7 +336,7 @@
</span><span class="cx"> builder.append(':');
</span><span class="cx"> builder.append(color.serialized());
</span><span class="cx"> if (important)
</span><del>- builder.append(" !important");
</del><ins>+ builder.appendLiteral(" !important");
</ins><span class="cx"> builder.append(';');
</span><span class="cx">
</span><span class="cx"> return builder.toString();
</span><span class="lines">@@ -399,11 +394,11 @@
</span><span class="cx"> StringBuilder builder;
</span><span class="cx">
</span><span class="cx"> builder.append(getPropertyNameString(CSSPropertyFontFamily));
</span><del>- builder.append(": \"");
</del><ins>+ builder.appendLiteral(": \"");
</ins><span class="cx"> builder.append(static_cast<CFStringRef>(name.get()));
</span><span class="cx"> builder.append('"');
</span><span class="cx"> if (behavior == kMACaptionAppearanceBehaviorUseValue)
</span><del>- builder.append(" !important");
</del><ins>+ builder.appendLiteral(" !important");
</ins><span class="cx"> builder.append(';');
</span><span class="cx">
</span><span class="cx"> return builder.toString();
</span><span class="lines">@@ -490,7 +485,7 @@
</span><span class="cx"> String fontName = captionsDefaultFontCSS();
</span><span class="cx"> String background = captionsBackgroundCSS();
</span><span class="cx"> if (!background.isEmpty() || !captionsColor.isEmpty() || !edgeStyle.isEmpty() || !fontName.isEmpty()) {
</span><del>- captionsOverrideStyleSheet.append(" video::");
</del><ins>+ captionsOverrideStyleSheet.appendLiteral(" video::");
</ins><span class="cx"> captionsOverrideStyleSheet.append(TextTrackCue::cueShadowPseudoId());
</span><span class="cx"> captionsOverrideStyleSheet.append('{');
</span><span class="cx">
</span><span class="lines">@@ -509,7 +504,7 @@
</span><span class="cx"> String windowColor = captionsWindowCSS();
</span><span class="cx"> String windowCornerRadius = windowRoundedCornerRadiusCSS();
</span><span class="cx"> if (!windowColor.isEmpty() || !windowCornerRadius.isEmpty()) {
</span><del>- captionsOverrideStyleSheet.append(" video::");
</del><ins>+ captionsOverrideStyleSheet.appendLiteral(" video::");
</ins><span class="cx"> captionsOverrideStyleSheet.append(VTTCue::cueBackdropShadowPseudoId());
</span><span class="cx"> captionsOverrideStyleSheet.append('{');
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventSource.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventSource.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/page/EventSource.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -53,7 +53,6 @@
</span><span class="cx"> #include "SerializedScriptValue.h"
</span><span class="cx"> #include "TextResourceDecoder.h"
</span><span class="cx"> #include "ThreadableLoader.h"
</span><del>-#include <wtf/text/StringBuilder.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -223,22 +222,16 @@
</span><span class="cx"> // If we have a charset, the only allowed value is UTF-8 (case-insensitive).
</span><span class="cx"> responseIsValid = charset.isEmpty() || equalIgnoringCase(charset, "UTF-8");
</span><span class="cx"> if (!responseIsValid) {
</span><del>- StringBuilder message;
- message.appendLiteral("EventSource's response has a charset (\"");
- message.append(charset);
- message.appendLiteral("\") that is not UTF-8. Aborting the connection.");
</del><ins>+ String message = makeString("EventSource's response has a charset (\"", charset, "\") that is not UTF-8. Aborting the connection.");
</ins><span class="cx"> // FIXME: We are missing the source line.
</span><del>- scriptExecutionContext()->addConsoleMessage(MessageSource::JS, MessageLevel::Error, message.toString());
</del><ins>+ scriptExecutionContext()->addConsoleMessage(MessageSource::JS, MessageLevel::Error, message);
</ins><span class="cx"> }
</span><span class="cx"> } else {
</span><span class="cx"> // To keep the signal-to-noise ratio low, we only log 200-response with an invalid MIME type.
</span><span class="cx"> if (statusCode == 200 && !mimeTypeIsValid) {
</span><del>- StringBuilder message;
- message.appendLiteral("EventSource's response has a MIME type (\"");
- message.append(response.mimeType());
- message.appendLiteral("\") that is not \"text/event-stream\". Aborting the connection.");
</del><ins>+ String message = makeString("EventSource's response has a MIME type (\"", response.mimeType(), "\") that is not \"text/event-stream\". Aborting the connection.");
</ins><span class="cx"> // FIXME: We are missing the source line.
</span><del>- scriptExecutionContext()->addConsoleMessage(MessageSource::JS, MessageLevel::Error, message.toString());
</del><ins>+ scriptExecutionContext()->addConsoleMessage(MessageSource::JS, MessageLevel::Error, message);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepagePageSerializercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PageSerializer.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PageSerializer.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/page/PageSerializer.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx"> if (!itemText.isEmpty()) {
</span><span class="cx"> cssText.append(itemText);
</span><span class="cx"> if (i < styleSheet->length() - 1)
</span><del>- cssText.append("\n\n");
</del><ins>+ cssText.appendLiteral("\n\n");
</ins><span class="cx"> }
</span><span class="cx"> Document* document = styleSheet->ownerDocument();
</span><span class="cx"> // Some rules have resources associated with them that we need to retrieve.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsOpenGLShimscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/OpenGLShims.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/OpenGLShims.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/platform/graphics/OpenGLShims.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -70,26 +70,18 @@
</span><span class="cx"> if (target)
</span><span class="cx"> return target;
</span><span class="cx">
</span><del>- String fullFunctionName(functionName);
- fullFunctionName.append("ARB");
- target = getProcAddress(fullFunctionName.utf8().data());
</del><ins>+ target = getProcAddress(makeString(functionName, "ARB").characters8());
</ins><span class="cx"> if (target)
</span><span class="cx"> return target;
</span><span class="cx">
</span><del>- fullFunctionName = functionName;
- fullFunctionName.append("EXT");
- target = getProcAddress(fullFunctionName.utf8().data());
</del><ins>+ target = getProcAddress(makeString(functionName, "EXT").characters8());
</ins><span class="cx">
</span><span class="cx"> #if defined(GL_ES_VERSION_2_0)
</span><del>- fullFunctionName = functionName;
- fullFunctionName.append("ANGLE");
- target = getProcAddress(fullFunctionName.utf8().data());
</del><ins>+ target = getProcAddress(makeString(functionName, "ANGLE").characters8());
</ins><span class="cx"> if (target)
</span><span class="cx"> return target;
</span><span class="cx">
</span><del>- fullFunctionName = functionName;
- fullFunctionName.append("APPLE");
- target = getProcAddress(fullFunctionName.utf8().data());
</del><ins>+ target = getProcAddress(makeString(functionName, "APPLE").characters8());
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> // A null address is still a failure case.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationInbandTextTrackPrivateAVFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx"> if (static_cast<CFBooleanRef>(value) != kCFBooleanTrue)
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- tagStart.append("<b>");
</del><ins>+ tagStart.appendLiteral("<b>");
</ins><span class="cx"> tagEnd = "</b>" + tagEnd;
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx"> if (static_cast<CFBooleanRef>(value) != kCFBooleanTrue)
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- tagStart.append("<i>");
</del><ins>+ tagStart.appendLiteral("<i>");
</ins><span class="cx"> tagEnd = "</i>" + tagEnd;
</span><span class="cx"> continue;
</span><span class="cx"> }
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> if (static_cast<CFBooleanRef>(value) != kCFBooleanTrue)
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>- tagStart.append("<u>");
</del><ins>+ tagStart.appendLiteral("<u>");
</ins><span class="cx"> tagEnd = "</u>" + tagEnd;
</span><span class="cx"> continue;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopenglGraphicsContext3DOpenGLCommoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -851,7 +851,7 @@
</span><span class="cx"> return name;
</span><span class="cx"> uint64_t number = nameHashForShader(name.utf8().data(), name.length());
</span><span class="cx"> StringBuilder builder;
</span><del>- builder.append("webgl_");
</del><ins>+ builder.appendLiteral("webgl_");
</ins><span class="cx"> appendUnsigned64AsHex(number, builder, Lowercase);
</span><span class="cx"> return builder.toString();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformtextDateTimeFormatcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/text/DateTimeFormat.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/text/DateTimeFormat.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/platform/text/DateTimeFormat.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx">
</span><span class="cx"> for (unsigned i = 0; i < literal.length(); ++i) {
</span><span class="cx"> if (literal[i] == '\'')
</span><del>- buffer.append("''");
</del><ins>+ buffer.appendLiteral("''");
</ins><span class="cx"> else {
</span><span class="cx"> String escaped = literal.substring(i);
</span><span class="cx"> escaped.replace('\'', "''");
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -837,17 +837,17 @@
</span><span class="cx"> absoluteBounds.x().toFloat(), absoluteBounds.y().toFloat(), absoluteBounds.maxX().toFloat(), absoluteBounds.maxY().toFloat(),
</span><span class="cx"> backing->backingStoreMemoryEstimate() / 1024));
</span><span class="cx">
</span><del>- logString.append(" (");
</del><ins>+ logString.appendLiteral(" (");
</ins><span class="cx"> logString.append(logReasonsForCompositing(layer));
</span><del>- logString.append(") ");
</del><ins>+ logString.appendLiteral(") ");
</ins><span class="cx">
</span><span class="cx"> if (backing->graphicsLayer()->contentsOpaque() || backing->paintsIntoCompositedAncestor()) {
</span><span class="cx"> logString.append('[');
</span><span class="cx"> if (backing->graphicsLayer()->contentsOpaque())
</span><del>- logString.append("opaque");
</del><ins>+ logString.appendLiteral("opaque");
</ins><span class="cx"> if (backing->paintsIntoCompositedAncestor())
</span><del>- logString.append("paints into ancestor");
- logString.append("] ");
</del><ins>+ logString.appendLiteral("paints into ancestor");
+ logString.appendLiteral("] ");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> logString.append(layer.name());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTreeAsTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTreeAsText.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTreeAsText.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/rendering/RenderTreeAsText.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -667,9 +667,9 @@
</span><span class="cx"> RenderElement* renderElementForRegion = isRenderNamedFlowFragment ? renderRegion->parent() : renderRegion;
</span><span class="cx"> if (renderElementForRegion->isPseudoElement()) {
</span><span class="cx"> if (renderElementForRegion->element()->isBeforePseudoElement())
</span><del>- tagName.append("::before");
</del><ins>+ tagName.appendLiteral("::before");
</ins><span class="cx"> else if (renderElementForRegion->element()->isAfterPseudoElement())
</span><del>- tagName.append("::after");
</del><ins>+ tagName.appendLiteral("::after");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ts << " {" << tagName.toString() << "}";
</span></span></pre></div>
<a id="trunkSourceWebCoretestingMicroTaskTestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/MicroTaskTest.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/MicroTaskTest.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/testing/MicroTaskTest.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -27,12 +27,8 @@
</span><span class="cx">
</span><span class="cx"> void MicroTaskTest::run()
</span><span class="cx"> {
</span><del>- StringBuilder message;
- message.append("MicroTask #");
- message.append(String::number(m_testNumber));
- message.append(" has run.");
</del><span class="cx"> if (m_document)
</span><del>- m_document->addConsoleMessage(MessageSource::JS, MessageLevel::Debug, message.toString());
</del><ins>+ m_document->addConsoleMessage(MessageSource::JS, MessageLevel::Debug, makeString("MicroTask #", String::number(m_testNumber), " has run."));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoretestingMockContentFilterSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/MockContentFilterSettings.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/MockContentFilterSettings.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebCore/testing/MockContentFilterSettings.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -30,9 +30,7 @@
</span><span class="cx">
</span><span class="cx"> #include "ContentFilter.h"
</span><span class="cx"> #include "ContentFilterUnblockHandler.h"
</span><del>-#include <mutex>
</del><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><del>-#include <wtf/text/StringBuilder.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -49,15 +47,7 @@
</span><span class="cx">
</span><span class="cx"> const String& MockContentFilterSettings::unblockRequestURL() const
</span><span class="cx"> {
</span><del>- static LazyNeverDestroyed<String> unblockRequestURL;
- static std::once_flag onceFlag;
- std::call_once(onceFlag, [] {
- StringBuilder unblockRequestURLBuilder;
- unblockRequestURLBuilder.append(ContentFilter::urlScheme());
- unblockRequestURLBuilder.append("://");
- unblockRequestURLBuilder.append(unblockURLHost());
- unblockRequestURL.construct(unblockRequestURLBuilder.toString());
- });
</del><ins>+ static NeverDestroyed<String> unblockRequestURL = makeString(ContentFilter::urlScheme(), "://", unblockURLHost());
</ins><span class="cx"> return unblockRequestURL;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/ChangeLog        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-04-20 Joseph Pecoraro <pecoraro@apple.com>
+
+ Cleanup some StringBuilder use
+ https://bugs.webkit.org/show_bug.cgi?id=143550
+
+ Reviewed by Darin Adler.
+
+ * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
+ (WebKit::buildObjectStoreStatement):
+ * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
+ (WebKit::v2RecordsTableSchema):
+ * Shared/Databases/IndexedDB/IDBUtilities.cpp:
+ (WebKit::uniqueDatabaseIdentifier):
+ * UIProcess/API/APIUserScript.cpp:
+ (API::UserScript::generateUniqueURL):
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::didReceiveInvalidMessage):
+ * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
+ (WebKit::combinedSecurityOriginIdentifier):
+
</ins><span class="cx"> 2015-04-20 Anders Carlsson <andersca@apple.com>
</span><span class="cx">
</span><span class="cx"> Modify the WKWebsiteDataStore API to take a NSSet of types instead of a bitmask
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx"> builder.appendLiteral(" CAST(? AS TEXT) ORDER BY key");
</span><span class="cx">
</span><span class="cx"> if (cursorDirection == IndexedDB::CursorDirection::Prev || cursorDirection == IndexedDB::CursorDirection::PrevNoDuplicate)
</span><del>- builder.append(" DESC");
</del><ins>+ builder.appendLiteral(" DESC");
</ins><span class="cx">
</span><span class="cx"> builder.append(';');
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -64,10 +64,9 @@
</span><span class="cx"> static const String v2RecordsTableSchema(const String& tableName)
</span><span class="cx"> {
</span><span class="cx"> StringBuilder builder;
</span><del>- builder.append("CREATE TABLE ");
</del><ins>+ builder.appendLiteral("CREATE TABLE ");
</ins><span class="cx"> builder.append(tableName);
</span><del>- builder.append(" (objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL, value NOT NULL ON CONFLICT FAIL)");
-
</del><ins>+ builder.appendLiteral(" (objectStoreID INTEGER NOT NULL ON CONFLICT FAIL, key TEXT COLLATE IDBKEY NOT NULL ON CONFLICT FAIL, value NOT NULL ON CONFLICT FAIL)");
</ins><span class="cx"> return builder.toString();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedDatabasesIndexedDBIDBUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Databases/IndexedDB/IDBUtilities.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Databases/IndexedDB/IDBUtilities.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/Shared/Databases/IndexedDB/IDBUtilities.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -42,14 +42,14 @@
</span><span class="cx"> if (originString == "null")
</span><span class="cx"> return String();
</span><span class="cx"> stringBuilder.append(originString);
</span><del>- stringBuilder.append("_");
</del><ins>+ stringBuilder.append('_');
</ins><span class="cx">
</span><span class="cx"> originString = mainFrameOrigin.toString();
</span><span class="cx"> if (originString == "null")
</span><span class="cx"> return String();
</span><span class="cx"> stringBuilder.append(originString);
</span><span class="cx">
</span><del>- stringBuilder.append("_");
</del><ins>+ stringBuilder.append('_');
</ins><span class="cx"> stringBuilder.append(databaseName);
</span><span class="cx">
</span><span class="cx"> return stringBuilder.toString();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIUserScriptcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIUserScript.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIUserScript.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/UIProcess/API/APIUserScript.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> WebCore::URL UserScript::generateUniqueURL()
</span><span class="cx"> {
</span><span class="cx"> StringBuilder urlStringBuilder;
</span><del>- urlStringBuilder.append("user-script:");
</del><ins>+ urlStringBuilder.appendLiteral("user-script:");
</ins><span class="cx"> urlStringBuilder.appendNumber(generateIdentifier());
</span><span class="cx"> return WebCore::URL { WebCore::URL { }, urlStringBuilder.toString() };
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -562,7 +562,7 @@
</span><span class="cx">
</span><span class="cx"> StringBuilder messageNameStringBuilder;
</span><span class="cx"> messageNameStringBuilder.append(messageReceiverName.data(), messageReceiverName.size());
</span><del>- messageNameStringBuilder.append(".");
</del><ins>+ messageNameStringBuilder.append('.');
</ins><span class="cx"> messageNameStringBuilder.append(messageName.data(), messageName.size());
</span><span class="cx">
</span><span class="cx"> s_invalidMessageCallback(toAPI(API::String::create(messageNameStringBuilder.toString()).get()));
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBFactoryBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp (183030 => 183031)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp        2015-04-20 22:05:52 UTC (rev 183030)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp        2015-04-20 22:07:31 UTC (rev 183031)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> if (originString == "null")
</span><span class="cx"> return String();
</span><span class="cx"> stringBuilder.append(originString);
</span><del>- stringBuilder.append("_");
</del><ins>+ stringBuilder.append('_');
</ins><span class="cx">
</span><span class="cx"> originString = mainFrameOrigin.toString();
</span><span class="cx"> if (originString == "null")
</span></span></pre>
</div>
</div>
</body>
</html>