// wxStringData class deallocation
// ===========================================================================
+#if defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
+# pragma message (__FILE__ ": building with Multithreaded non DLL runtime has a performance impact on wxString!")
void wxStringData::Free()
{
free(this);
}
+#endif
// ===========================================================================
// wxString class core
if ( conv.MB2WC(m_pchData, psz, nLen + 1) != (size_t)-1 )
{
// initialized ok
+ m_pchData[nLen] = 0;
return;
}
//else: the conversion failed -- leave the string empty (what else?)
wxString res;
res += (wchar_t)(unsigned char) ascii;
-
+
return res;
}
}
// replace first (or all) occurences of some substring with another one
-size_t wxString::Replace(const wxChar *szOld, const wxChar *szNew, bool bReplaceAll)
+size_t
+wxString::Replace(const wxChar *szOld, const wxChar *szNew, bool bReplaceAll)
{
+ // if we tried to replace an empty string we'd enter an infinite loop below
+ wxCHECK_MSG( szOld && *szOld && szNew, 0,
+ _T("wxString::Replace(): invalid parameter") );
+
size_t uiCount = 0; // count of replacements made
size_t uiOldLen = wxStrlen(szOld);