As wxCharTypeBuffer ctor taking the length NUL-terminates the buffer, it may
be expected that extend() does the same but it did not. Do add the NUL at the
end for consistency, even though it's not really needed for the existing code
using extend() in wxWidgets itself.
Closes #13885.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70417
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
if ( !str )
return false;
+ // For consistency with the ctor taking just the length, NUL-terminate
+ // the buffer.
+ str[len] = (CharType)0;
+
if ( this->m_data == this->GetNullData() )
{
this->m_data = new Data(str, len);
wxCharBuffer buf2 = sbuf;
CPPUNIT_ASSERT( buf2.data() != literal );
CPPUNIT_ASSERT_EQUAL( literal, buf.data() );
+
+ // Check that extending the buffer keeps it NUL-terminated.
+ size_t len = 10;
+
+ wxCharBuffer buf3(len);
+ CPPUNIT_ASSERT_EQUAL('\0', buf3.data()[len]);
+
+ wxCharBuffer buf4;
+ buf4.extend(len);
+ CPPUNIT_ASSERT_EQUAL('\0', buf4.data()[len]);
+
+ wxCharBuffer buf5(5);
+ buf5.extend(len);
+ CPPUNIT_ASSERT_EQUAL('\0', buf5.data()[len]);
}