From: Vadim Zeitlin Date: Wed, 15 May 2013 13:05:40 +0000 (+0000) Subject: Allow shrinking the array with wxArray::resize(). X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bed4928779cd4f4878cd42e1cc520e6a93022d00 Allow shrinking the array with wxArray::resize(). This method did nothing if its argument was less than the current array size, as it was just a synonym for SetSize() which was documented to behave like this, but this was inconsistent with std::vector and wxVector resize() which does shrink the array, so change wxArray version to shrink it too. Closes #15195. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index d50c7c19e8..aa066b54b8 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -274,8 +274,13 @@ protected: \ void pop_back() { RemoveAt(size() - 1); } \ void push_back(const value_type& v) { Add(v); } \ void reserve(size_type n) { Alloc(n); } \ - void resize(size_type n, value_type v = value_type()) \ - { SetCount(n, v); } \ + void resize(size_type count, value_type defval = value_type()) \ + { \ + if ( count < m_nCount ) \ + m_nCount = count; \ + else \ + SetCount(count, defval); \ + } \ \ iterator begin() { return m_pItems; } \ iterator end() { return m_pItems + m_nCount; } \