From: Vadim Zeitlin Date: Sat, 8 Dec 2012 00:37:17 +0000 (+0000) Subject: Don't unnecessarily NUL-terminate wxCharBuffer contents. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/935693c48491234b24cb1c8431a64f0f11349112 Don't unnecessarily NUL-terminate wxCharBuffer contents. wxCharBuffer already initializes the last byte of the buffer it allocates to 0 so there is no need to do it explicitly. Also don't allocate an extra byte, wxCharBuffer already adds one to the length passed to it for the trailing NUL. See #13885. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/datstrm.cpp b/src/common/datstrm.cpp index 607c542647..cb76a5528e 100644 --- a/src/common/datstrm.cpp +++ b/src/common/datstrm.cpp @@ -114,11 +114,10 @@ wxString wxDataInputStream::ReadString() if ( len > 0 ) { #if wxUSE_UNICODE - wxCharBuffer tmp(len + 1); + wxCharBuffer tmp(len); if ( tmp ) { m_input->Read(tmp.data(), len); - tmp.data()[len] = '\0'; ret = m_conv->cMB2WX(tmp.data()); } #else diff --git a/src/common/ffile.cpp b/src/common/ffile.cpp index ae19669204..1d55267348 100644 --- a/src/common/ffile.cpp +++ b/src/common/ffile.cpp @@ -102,7 +102,7 @@ bool wxFFile::ReadAll(wxString *str, const wxMBConv& conv) clearerr(m_fp); - wxCharBuffer buf(length + 1); + wxCharBuffer buf(length); // note that real length may be less than file length for text files with DOS EOLs // ('\r's get dropped by CRT when reading which means that we have diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index 54df1ff70a..73fe64d115 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -460,7 +460,6 @@ wxMBConv::cMB2WC(const char *inBuff, size_t inLen, size_t *outLen) const // because we want the buffer to always be NUL-terminated, even if the // input isn't (as otherwise the caller has no way to know its length) wxWCharBuffer wbuf(dstLen); - wbuf.data()[dstLen] = L'\0'; if ( ToWChar(wbuf.data(), dstLen, inBuff, inLen) != wxCONV_FAILED ) { if ( outLen ) diff --git a/src/html/htmlfilt.cpp b/src/html/htmlfilt.cpp index 0baea69675..9bd0d753b6 100644 --- a/src/html/htmlfilt.cpp +++ b/src/html/htmlfilt.cpp @@ -154,9 +154,8 @@ wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const else { size_t size = s->GetSize(); - wxCharBuffer buf( size+1 ); + wxCharBuffer buf( size ); s->Read( buf.data(), size ); - *(buf.data() + size) = 0; wxString tmpdoc( buf, wxConvISO8859_1); wxString charset = wxHtmlParser::ExtractCharsetInformation(tmpdoc);