X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0fe1f685b4d05fefd042ebb4a88bb8789ed237c2..aa74396d46f89699c3b5bb29abafc8ae2bb59ba9:/src/common/string.cpp

diff --git a/src/common/string.cpp b/src/common/string.cpp
index d0297f3c97..c8ebc830cd 100644
--- a/src/common/string.cpp
+++ b/src/common/string.cpp
@@ -340,10 +340,17 @@ wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength)
 
 #if wxUSE_WCHAR_T
 // from wide string
-wxString::wxString(const wchar_t *pwz, wxMBConv& conv)
+wxString::wxString(const wchar_t *pwz, wxMBConv& conv, size_t nLength)
 {
   // first get necessary size
-  size_t nLen = pwz ? conv.WC2MB((char *) NULL, pwz, 0) : 0;
+  size_t nLen = 0;
+  if (pwz)
+  {
+    if (nLength == wxSTRING_MAXLEN)
+      nLen = conv.WC2MB((char *) NULL, pwz, 0);
+    else
+      nLen = nLength;
+  }
 
   // empty?
   if ( (nLen != 0) && (nLen != (size_t)-1) ) {
@@ -2017,8 +2024,6 @@ wxArrayString::~wxArrayString()
 // pre-allocates memory (frees the previous data!)
 void wxArrayString::Alloc(size_t nSize)
 {
-  wxASSERT( nSize > 0 );
-
   // only if old buffer was not big enough
   if ( nSize > m_nSize ) {
     Free();