#define STATISTICS_ADD(av, val)
#endif // WXSTRING_STATISTICS
+// ===========================================================================
+// 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);