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
This commit is contained in:
Vadim Zeitlin
2012-12-08 00:37:17 +00:00
parent cd41ef6f51
commit 935693c484
4 changed files with 3 additions and 6 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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 )

View File

@@ -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);