]> git.saurik.com Git - wxWidgets.git/commitdiff
create a true empty string and not a null CFStringRef
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 25 Mar 2005 16:34:55 +0000 (16:34 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 25 Mar 2005 16:34:55 +0000 (16:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/corefoundation/cfstring.cpp

index 73430139db95a0c389722c893c326db762f9f811..ace47930f9556462770038d9fb6b7fefbc4d818b 100644 (file)
@@ -635,27 +635,32 @@ void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding )
 {
     Release() ; 
     if (st.IsEmpty())
-        return ;
-
-    wxString str = st ;
-    wxMacConvertNewlines13To10( &str ) ;
+    {
+        m_cfs = CFSTR("") ;
+        CFRetain( m_cfs ) ;
+    }
+    else
+    {
+        wxString str = st ;
+        wxMacConvertNewlines13To10( &str ) ;
 #if wxUSE_UNICODE
 #if SIZEOF_WCHAR_T == 2
-    m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
-        (UniChar*)str.wc_str() , str.Len() );
+        m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
+            (UniChar*)str.wc_str() , str.Len() );
 #else
-    wxMBConvUTF16BE converter ;
-    size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
-    UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
-    converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
-    m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
-        unibuf , unicharlen / sizeof(UniChar) ) ;
-    delete[] unibuf ;
+        wxMBConvUTF16BE converter ;
+        size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
+        UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
+        converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
+        m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
+            unibuf , unicharlen / sizeof(UniChar) ) ;
+        delete[] unibuf ;
 #endif
 #else // not wxUSE_UNICODE
-    m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
-        wxMacGetSystemEncFromFontEnc( encoding ) ) ;
+        m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
+            wxMacGetSystemEncFromFontEnc( encoding ) ) ;
 #endif
+    }
     m_release = true ;
 }