]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/string.cpp
use real alpha blending algorithm to avoid sickly looking colors on some platforms
[wxWidgets.git] / src / common / string.cpp
index 4551c669318d178426b6ff5b4f0629ad125781f6..7d77c76f8f9a188f70129eb8571bf3e82546c8d1 100644 (file)
@@ -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 <typename T>
+template <typename T, typename F>
 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