From: Vadim Zeitlin Date: Wed, 10 Nov 2010 13:53:40 +0000 (+0000) Subject: Use wxString::To8BitData() instead of mb_str() to handle NULs correctly. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/716ee1223ebb40e25fb3c9efb46aaad73fe3191d Use wxString::To8BitData() instead of mb_str() to handle NULs correctly. In ANSI build wxString::mb_str() returns a pointer to the internal wxString data directly instead of a buffer with a proper length, so it provides access to the part of the string before the first embedded NUL only. Use To8BitData() which always returns the buffer of the correct size in all builds. The open question remains whether mb_str() should be changed to return a (non owned) buffer and not just a pointer in ANSI build. This would make manipulating strings with embedded NULs safer but mb_str() would be less efficient and less compatible. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/streams/sstream.cpp b/tests/streams/sstream.cpp index f94d037350..3d65dd7eae 100644 --- a/tests/streams/sstream.cpp +++ b/tests/streams/sstream.cpp @@ -106,7 +106,7 @@ void strStream::CheckString(const wxString& text) { wxStringOutputStream sos; - const wxCharBuffer buf(text.mb_str()); + const wxCharBuffer buf(text.To8BitData()); sos.Write(buf, buf.length()); CPPUNIT_ASSERT_EQUAL( text, sos.GetString() );