Modified: trunk/Source/_javascript_Core/ChangeLog (186793 => 186794)
--- trunk/Source/_javascript_Core/ChangeLog 2015-07-13 23:06:51 UTC (rev 186793)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-07-13 23:11:05 UTC (rev 186794)
@@ -1,3 +1,17 @@
+2015-07-13 Daniel Bates <[email protected]>
+
+ Cleanup: Avoid extraneous increment and decrement of reference count of ScriptArguments in ConsoleClient
+ https://bugs.webkit.org/show_bug.cgi?id=146920
+
+ Reviewed by Brian Burg.
+
+ Remove local variable RefPtr<ScriptArguments> and copy constructor call with an argument that
+ was initialized with an rvalue reference. The argument itself is an lvalue reference.
+
+ * runtime/ConsoleClient.cpp:
+ (JSC::ConsoleClient::printConsoleMessageWithArguments):
+ (JSC::ConsoleClient::internalMessageWithTypeAndLevel):
+
2015-07-13 Anders Carlsson <[email protected]>
Apps linked with a deployment target of iOS 7.x or earlier crash when using modern WebKit API
Modified: trunk/Source/_javascript_Core/runtime/ConsoleClient.cpp (186793 => 186794)
--- trunk/Source/_javascript_Core/runtime/ConsoleClient.cpp 2015-07-13 23:06:51 UTC (rev 186793)
+++ trunk/Source/_javascript_Core/runtime/ConsoleClient.cpp 2015-07-13 23:11:05 UTC (rev 186794)
@@ -146,10 +146,8 @@
WTFLogAlways("%s", builder.toString().utf8().data());
}
-void ConsoleClient::printConsoleMessageWithArguments(MessageSource source, MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr<ScriptArguments>&& prpArguments)
+void ConsoleClient::printConsoleMessageWithArguments(MessageSource source, MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr<ScriptArguments>&& arguments)
{
- RefPtr<ScriptArguments> arguments = prpArguments;
-
bool isTraceMessage = type == MessageType::Trace;
size_t stackSize = isTraceMessage ? ScriptCallStack::maxCallStackSizeToCapture : 1;
RefPtr<ScriptCallStack> callStack(createScriptCallStackForConsole(exec, stackSize));
@@ -191,13 +189,12 @@
}
}
-void ConsoleClient::internalMessageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr<ScriptArguments>&& prpArguments, ArgumentRequirement argumentRequirement)
+void ConsoleClient::internalMessageWithTypeAndLevel(MessageType type, MessageLevel level, JSC::ExecState* exec, RefPtr<ScriptArguments>&& arguments, ArgumentRequirement argumentRequirement)
{
- RefPtr<ScriptArguments> arguments = prpArguments;
if (argumentRequirement == ArgumentRequired && !arguments->argumentCount())
return;
- messageWithTypeAndLevel(type, level, exec, arguments.release());
+ messageWithTypeAndLevel(type, level, exec, WTF::move(arguments));
}
void ConsoleClient::logWithLevel(ExecState* exec, RefPtr<ScriptArguments>&& arguments, MessageLevel level)