Use wxCharBuffer instead of manual allocations in GetErrorMsg()
Replace new[]/delete[] with a wxCharBuffer object. Also check for conversion failure when converting the error message to wide char string.
This commit is contained in:
@@ -227,14 +227,14 @@ wxString wxRegExImpl::GetErrorMsg(int errorcode) const
|
|||||||
int len = wx_regerror(errorcode, &m_RegEx, NULL, 0);
|
int len = wx_regerror(errorcode, &m_RegEx, NULL, 0);
|
||||||
if ( len > 0 )
|
if ( len > 0 )
|
||||||
{
|
{
|
||||||
char* szcmbError = new char[++len];
|
wxCharBuffer errbuf(len);
|
||||||
|
|
||||||
(void)wx_regerror(errorcode, &m_RegEx, szcmbError, len);
|
(void)wx_regerror(errorcode, &m_RegEx, errbuf.data(), errbuf.length());
|
||||||
|
|
||||||
szError = wxConvLibc.cMB2WX(szcmbError);
|
szError = wxConvLibc.cMB2WX(errbuf);
|
||||||
delete [] szcmbError;
|
|
||||||
}
|
}
|
||||||
else // regerror() returned 0
|
|
||||||
|
if ( szError.empty() ) // regerror() returned 0 or conversion failed
|
||||||
{
|
{
|
||||||
szError = _("unknown error");
|
szError = _("unknown error");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user