Title: [224825] trunk/Source/WebKit
Revision
224825
Author
timothy_hor...@apple.com
Date
2017-11-14 11:43:25 -0800 (Tue, 14 Nov 2017)

Log Message

Don't use -[NSString stringWithFormat:] to build defaults keys
https://bugs.webkit.org/show_bug.cgi?id=179680

Reviewed by Simon Fraser.

* UIProcess/mac/WebPreferencesMac.mm:
(WebKit::makeKey):
(WebKit::debugUserDefaultsValue):
Use string concatenation instead of stringWithFormat to build
preference keys. This wasn't a huge cost, but it shaves a few milliseconds
off process launch.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (224824 => 224825)


--- trunk/Source/WebKit/ChangeLog	2017-11-14 19:40:02 UTC (rev 224824)
+++ trunk/Source/WebKit/ChangeLog	2017-11-14 19:43:25 UTC (rev 224825)
@@ -1,3 +1,17 @@
+2017-11-14  Tim Horton  <timothy_hor...@apple.com>
+
+        Don't use -[NSString stringWithFormat:] to build defaults keys
+        https://bugs.webkit.org/show_bug.cgi?id=179680
+
+        Reviewed by Simon Fraser.
+
+        * UIProcess/mac/WebPreferencesMac.mm:
+        (WebKit::makeKey):
+        (WebKit::debugUserDefaultsValue):
+        Use string concatenation instead of stringWithFormat to build
+        preference keys. This wasn't a huge cost, but it shaves a few milliseconds
+        off process launch.
+
 2017-11-14  Alex Christensen  <achristen...@webkit.org>
 
         Clean up old URL parser remnants

Modified: trunk/Source/WebKit/UIProcess/mac/WebPreferencesMac.mm (224824 => 224825)


--- trunk/Source/WebKit/UIProcess/mac/WebPreferencesMac.mm	2017-11-14 19:40:02 UTC (rev 224824)
+++ trunk/Source/WebKit/UIProcess/mac/WebPreferencesMac.mm	2017-11-14 19:43:25 UTC (rev 224825)
@@ -32,13 +32,10 @@
 
 namespace WebKit {
 
-static inline NSString* makeKey(NSString *identifier, NSString *keyPrefix, NSString *key)
+static inline NSString *makeKey(const String& identifier, const String& keyPrefix, const String& key)
 {
-    ASSERT(identifier.length);
-    ASSERT(keyPrefix);
-    ASSERT(key);
-
-    return [NSString stringWithFormat:@"%@%@%@", identifier, keyPrefix, key];
+    ASSERT(!identifier.isEmpty());
+    return String(identifier + keyPrefix + key);
 }
 
 bool WebPreferences::platformGetStringUserValueForKey(const String& key, String& userValue)
@@ -101,16 +98,13 @@
     return true;
 }
 
-static id debugUserDefaultsValue(NSString *identifier, NSString *keyPrefix, NSString *globalDebugKeyPrefix, NSString *key)
+static id debugUserDefaultsValue(const String& identifier, const String& keyPrefix, const String& globalDebugKeyPrefix, const String& key)
 {
-    ASSERT(keyPrefix);
-    ASSERT(key);
-
     NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
     id object = nil;
 
-    if (identifier.length)
-        object = [standardUserDefaults objectForKey:[NSString stringWithFormat:@"%@%@%@", identifier, keyPrefix, key]];
+    if (!identifier.isEmpty())
+        object = [standardUserDefaults objectForKey:makeKey(identifier, keyPrefix, key)];
 
     if (!object) {
         // Allow debug preferences to be set globally, using the debug key prefix.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to