[Cocoa] Turn on ARC for the single Objective-C++ source file in bmalloc
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Jun 2018 17:23:58 +0000 (17:23 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Jun 2018 17:23:58 +0000 (17:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=186398

Reviewed by Saam Barati.

* Configurations/Base.xcconfig: Turn on ARC.
* bmalloc/ProcessCheck.mm:
(bmalloc::gigacageEnabledForProcess): Removed the globals from this function,
since it's only called once. If it was called more than once, we could optimize
that with a single boolean global rather than two strings and two booleans.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/bmalloc/ChangeLog
Source/bmalloc/Configurations/Base.xcconfig
Source/bmalloc/bmalloc/ProcessCheck.mm

index c0de689..15f402c 100644 (file)
@@ -1,3 +1,16 @@
+2018-06-07  Darin Adler  <darin@apple.com>
+
+        [Cocoa] Turn on ARC for the single Objective-C++ source file in bmalloc
+        https://bugs.webkit.org/show_bug.cgi?id=186398
+
+        Reviewed by Saam Barati.
+
+        * Configurations/Base.xcconfig: Turn on ARC.
+        * bmalloc/ProcessCheck.mm:
+        (bmalloc::gigacageEnabledForProcess): Removed the globals from this function,
+        since it's only called once. If it was called more than once, we could optimize
+        that with a single boolean global rather than two strings and two booleans.
+
 2018-06-07  David Kilzer  <ddkilzer@apple.com>
 
         bmalloc: Fix 'noreturn' warnings when compiling with -std=gnu++17
index 9f57289..f6a3bb6 100644 (file)
@@ -32,6 +32,7 @@ ALWAYS_SEARCH_USER_PATHS = NO;
 
 CLANG_CXX_LANGUAGE_STANDARD = gnu++14;
 CLANG_CXX_LIBRARY = libc++;
+CLANG_ENABLE_OBJC_ARC = YES;
 CLANG_ENABLE_OBJC_WEAK = YES;
 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 CLANG_WARN_BOOL_CONVERSION = YES;
index 5c7519c..c55c9d1 100644 (file)
@@ -33,16 +33,19 @@ namespace bmalloc {
 
 bool gigacageEnabledForProcess()
 {
-    static NSString *appName = [[NSBundle mainBundle] bundleIdentifier];
+    // Note that this function is only called once.
+    // If we wanted to make it efficient to call more than once, we could memoize the result in a global boolean.
+
+    NSString *appName = [[NSBundle mainBundle] bundleIdentifier];
     if (appName) {
-        static bool isWebProcess = [appName isEqualToString:@"com.apple.WebKit.WebContent.Development"]
+        bool isWebProcess = [appName isEqualToString:@"com.apple.WebKit.WebContent.Development"]
             || [appName isEqualToString:@"com.apple.WebKit.WebContent"]
             || [appName isEqualToString:@"com.apple.WebProcess"];
         return isWebProcess;
     }
 
-    static NSString *processName = [[NSProcessInfo processInfo] processName];
-    static bool isOptInBinary = [processName isEqualToString:@"jsc"]
+    NSString *processName = [[NSProcessInfo processInfo] processName];
+    bool isOptInBinary = [processName isEqualToString:@"jsc"]
         || [processName isEqualToString:@"wasm"]
         || [processName hasPrefix:@"test"];