X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1db4ad4a44c45644d4b4dd6dea701233f01d422..05159a2750ed2cc5945a85bc5fc6849ad1a30e75:/src/common/dynarray.cpp diff --git a/src/common/dynarray.cpp b/src/common/dynarray.cpp index 1b3a0353b9..4d0ee51d28 100644 --- a/src/common/dynarray.cpp +++ b/src/common/dynarray.cpp @@ -110,7 +110,7 @@ name& name::operator=(const name& src) \ void name::Grow(size_t nIncrement) \ { \ /* only do it if no more place */ \ - if( m_nCount == m_nSize ) { \ + if( (m_nCount == m_nSize) || ((m_nSize - m_nCount) < nIncrement) ) { \ if( m_nSize == 0 ) { \ /* was empty, determine initial size */ \ size_t size = WX_ARRAY_DEFAULT_INITIAL_SIZE; \ @@ -253,6 +253,8 @@ int name::Index(T lItem, CMPFUNC fnCompare) const \ /* add item at the end */ \ void name::Add(T lItem, size_t nInsert) \ { \ + if (nInsert == 0) \ + return; \ Grow(nInsert); \ for (size_t i = 0; i < nInsert; i++) \ m_pItems[m_nCount++] = lItem; \ @@ -271,6 +273,8 @@ void name::Insert(T lItem, size_t nIndex, size_t nInsert) \ wxCHECK_RET( m_nCount <= m_nCount + nInsert, \ wxT("array size overflow in wxArray::Insert") ); \ \ + if (nInsert == 0) \ + return; \ Grow(nInsert); \ \ memmove(&m_pItems[nIndex + nInsert], &m_pItems[nIndex], \