Reviewed by Brady.
authorggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Oct 2006 18:29:57 +0000 (18:29 +0000)
committerggaren <ggaren@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 27 Oct 2006 18:29:57 +0000 (18:29 +0000)
        Fixed semantic inaccuracy in String::operator NSString *(), where a NULL
        String became an empty NSString *, instead of nil. This will become important
        as we start using this conversion more.

        Added work-around for AppKit crash that semantic accuracy revealed.

        No testcase because I don't think there's a way to reflect this change
        in a webpage yet.

        * platform/PlatformString.h:
        (WebCore::String::operator NSString*):
        * platform/mac/TextFieldMac.mm:
        (-[NSSearchFieldCell _addStringToRecentSearches:]):

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

WebCore/ChangeLog
WebCore/platform/PlatformString.h
WebCore/platform/mac/TextFieldMac.mm

index d9371edf8d9032f59edc85d75b83ec881b69a191..268ed6a9eb80a1cdbeec905584412c0a79b50402 100644 (file)
@@ -1,3 +1,21 @@
+2006-10-27  Geoffrey Garen  <ggaren@apple.com>
+
+        Reviewed by Brady.
+
+        Fixed semantic inaccuracy in String::operator NSString *(), where a NULL
+        String became an empty NSString *, instead of nil. This will become important
+        as we start using this conversion more.
+        
+        Added work-around for AppKit crash that semantic accuracy revealed.
+        
+        No testcase because I don't think there's a way to reflect this change
+        in a webpage yet.
+
+        * platform/PlatformString.h:
+        (WebCore::String::operator NSString*):
+        * platform/mac/TextFieldMac.mm:
+        (-[NSSearchFieldCell _addStringToRecentSearches:]):
+
 2006-10-27  David Harrison  <harrison@apple.com>
 
         Reviewed by Maciej,
index b379f514c243a23621575058a4b0ed9edae0a2bd..278461bc8dc42b4eb19b67492adc19db33dec718 100644 (file)
@@ -156,7 +156,7 @@ public:
 
 #ifdef __OBJC__
     String(NSString*);
-    operator NSString*() const { if (!m_impl) return @""; return *m_impl; }
+    operator NSString*() const { if (!m_impl) return nil; return *m_impl; }
 #endif
 
 #if PLATFORM(QT)
index 75d2ee5546895c8fe47026c95abe0939b149f935..3cd6151f8516fcd85f6f60ff3107759f3e2342a6 100644 (file)
@@ -133,9 +133,12 @@ void TextField::setColors(const Color& background, const Color& foreground)
 
 void TextField::setText(const String& s)
 {
+    // Work around <rdar://problem/4806786> -[NSCell setStringValue:nil] throws an exception
+    String nullSafeStringValue = s.isNull() ? "" : s;
+
     NSTextField *textField = (NSTextField *)getView();
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    [textField setStringValue:s];
+    [textField setStringValue:nullSafeStringValue];
     END_BLOCK_OBJC_EXCEPTIONS;
 }