Reviewed by Tim Hatcher.
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 10 Feb 2008 07:00:06 +0000 (07:00 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 10 Feb 2008 07:00:06 +0000 (07:00 +0000)
        - fix <rdar://problem/5725996> crash every time you open the Xcode documentation window

        * WebView/WebView.mm:
        (-[WebView _userAgentWithApplicationName:andWebKitVersion:]): Work around a bug in the
        garbage collector's Objective C++ support by not initializing a static to an object
        that needs to be marked when running under GC.

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

WebKit/mac/ChangeLog
WebKit/mac/WebView/WebView.mm

index 33780f7..8bd27c3 100644 (file)
@@ -1,3 +1,14 @@
+2008-02-09  Darin Adler  <darin@apple.com>
+
+        Reviewed by Tim Hatcher.
+
+        - fix <rdar://problem/5725996> crash every time you open the Xcode documentation window
+
+        * WebView/WebView.mm:
+        (-[WebView _userAgentWithApplicationName:andWebKitVersion:]): Work around a bug in the
+        garbage collector's Objective C++ support by not initializing a static to an object
+        that needs to be marked when running under GC.
+
 2008-02-05  Dan Bernstein  <mitz@apple.com>
 
         Reviewed by Darin Adler.
index f5285f4..6ee9e8b 100644 (file)
@@ -4103,7 +4103,11 @@ static NSString *createMacOSXVersionString()
 
 - (NSString *)_userAgentWithApplicationName:(NSString *)applicationName andWebKitVersion:(NSString *)version
 {
-    static NSString *osVersion = createMacOSXVersionString();
+    // Note: Do *not* move the initialization of osVersion into the declaration.
+    // Garbage collection won't correctly mark the global variable in that case <rdar://problem/5733674>.
+    static NSString *osVersion;
+    if (!osVersion)
+        version = createMacOSXVersionString();
     NSString *language = [NSUserDefaults _webkit_preferredLanguageCode];
     if ([applicationName length])
         return [NSString stringWithFormat:@"Mozilla/5.0 (Macintosh; U; " PROCESSOR " Mac OS X %@; %@) AppleWebKit/%@ (KHTML, like Gecko) %@",