From bed4928779cd4f4878cd42e1cc520e6a93022d00 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 15 May 2013 13:05:40 +0000 Subject: [PATCH] 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 --- include/wx/dynarray.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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; } \ -- 2.47.2