]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dobjcmn.cpp
Allow retrieving the descent and external leading of empty strings.
[wxWidgets.git] / src / common / dobjcmn.cpp
index 0eeea52fb20d2cb31d39c5d4f6360cd452d784f4..3486edefb9e5b6f0e7393dba9407d105eaf6d0d5 100644 (file)
@@ -425,8 +425,8 @@ bool wxTextDataObject::GetDataHere(void *buf) const
     // NOTE: use wxTmemcpy() instead of wxStrncpy() to allow
     //       retrieval of strings with embedded NULLs
     wxTmemcpy(static_cast<wxChar*>(buf),
-              textNative.c_str(),
-              (textNative.length() + 1)*sizeof(wxChar));
+              textNative.t_str(),
+              textNative.length() + 1);
 
     return true;
 }
@@ -448,7 +448,10 @@ bool wxTextDataObject::SetData(size_t len, const void *buf)
 
 size_t wxHTMLDataObject::GetDataSize() const
 {
-    const wxScopedCharBuffer buffer(GetHTML().utf8_str());
+    // Ensure that the temporary string returned by GetHTML() is kept alive for
+    // as long as we need it here.
+    const wxString& htmlStr = GetHTML();
+    const wxScopedCharBuffer buffer(htmlStr.utf8_str());
 
     size_t size = buffer.length();
 
@@ -467,7 +470,8 @@ bool wxHTMLDataObject::GetDataHere(void *buf) const
         return false;
 
     // Windows and Mac always use UTF-8, and docs suggest GTK does as well.
-    const wxScopedCharBuffer html(GetHTML().utf8_str());
+    const wxString& htmlStr = GetHTML();
+    const wxScopedCharBuffer html(htmlStr.utf8_str());
     if ( !html )
         return false;