X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/122f3c5dc01fc03b05a29d009a24e170adf2e370..24e9f36bccb720dc7b8abd6187d9427fecbc75c9:/src/common/string.cpp diff --git a/src/common/string.cpp b/src/common/string.cpp index 4551c66931..7d77c76f8f 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -1682,17 +1682,11 @@ int wxString::Find(const wxChar *pszSub) const // the implementation of all the functions below is exactly the same so factor // it out -#ifdef __WATCOMC__ - #define STR2INTLINK _WCRTLINK -#else - #define STR2INTLINK -#endif - -template +template bool wxStringToIntType(const wxChar *start, T *val, int base, - T STR2INTLINK (*func)(const wxChar *, wxChar **, int)) + F func) { wxCHECK_MSG( val, false, _T("NULL output pointer") ); wxASSERT_MSG( !base || (base > 1 && base <= 36), _T("invalid base") ); @@ -2191,13 +2185,16 @@ void wxArrayString::Alloc(size_t nSize) { // only if old buffer was not big enough if ( nSize > m_nSize ) { - Free(); - wxDELETEA(m_pItems); - m_pItems = new wxChar *[nSize]; + wxChar **pNew = new wxChar *[nSize]; + if ( !pNew ) + return; + + memcpy(pNew, m_pItems, m_nCount*sizeof(wxChar *)); + delete [] m_pItems; + + m_pItems = pNew; m_nSize = nSize; } - - m_nCount = 0; } // minimizes the memory usage by freeing unused memory