From: Vadim Zeitlin Date: Wed, 8 Nov 2006 18:52:43 +0000 (+0000) Subject: wxArrayString::Alloc() shouldn't clear the array contents X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/9129836e627b31134dd2a1e8671a0906883a063a?ds=inline wxArrayString::Alloc() shouldn't clear the array contents git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43203 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index a799e31985..0520684946 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -69,12 +69,19 @@ Deprecated methods since 2.6.x and their replacements -Major new features in 2.7 release +Major new features in 2.8 release --------------------------------- - New AUI library supporting docking windows and much more. +2.8.0 +----- + +All: + +- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents + 2.7.2 ----- diff --git a/src/common/string.cpp b/src/common/string.cpp index 4551c66931..8a722a4f4c 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -2191,13 +2191,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