#endif
#include "wx/dynarray.h"
+#include <wx/intl.h>
#include <stdlib.h>
#include <string.h> // for memmove
{
m_uiSize =
m_uiCount = 0;
- m_pItems = NULL;
+ m_pItems = (long *) NULL;
}
// copy ctor
memcpy(m_pItems, src.m_pItems, m_uiCount*sizeof(long));
}
else
- m_pItems = NULL;
+ m_pItems = (long *) NULL;
}
// assignment operator
wxBaseArray& wxBaseArray::operator=(const wxBaseArray& src)
{
+#if 0
wxDELETEA(m_pItems);
+#else
+ if ( (m_pItems)) {
+ delete (m_pItems);
+ (m_pItems) = 0;
+ }
+#endif
m_uiSize = // not src.m_uiSize to save memory
m_uiCount = src.m_uiCount;
memcpy(m_pItems, src.m_pItems, m_uiCount*sizeof(long));
}
else
- m_pItems = NULL;
+ m_pItems = (long *) NULL;
return *this;
}
else
{
// add 50% but not too much
- uint uiIncrement = m_uiSize >> 1;
+ size_t uiIncrement = m_uiSize < WX_ARRAY_DEFAULT_INITIAL_SIZE
+ ? WX_ARRAY_DEFAULT_INITIAL_SIZE : m_uiSize >> 1;
if ( uiIncrement > ARRAY_MAXSIZE_INCREMENT )
uiIncrement = ARRAY_MAXSIZE_INCREMENT;
m_uiSize += uiIncrement;
}
// pre-allocates memory (frees the previous data!)
-void wxBaseArray::Alloc(uint uiSize)
+void wxBaseArray::Alloc(size_t uiSize)
{
wxASSERT( uiSize > 0 );
{
if ( bFromEnd ) {
if ( m_uiCount > 0 ) {
- uint ui = m_uiCount;
+ size_t ui = m_uiCount;
do {
if ( m_pItems[--ui] == lItem )
return ui;
}
}
else {
- for( uint ui = 0; ui < m_uiCount; ui++ ) {
+ for( size_t ui = 0; ui < m_uiCount; ui++ ) {
if( m_pItems[ui] == lItem )
return ui;
}
// search for an item in a sorted array (binary search)
int wxBaseArray::Index(long lItem, CMPFUNC fnCompare) const
{
- uint i,
+ size_t i,
lo = 0,
hi = m_uiCount;
int res;
// add item assuming the array is sorted with fnCompare function
void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
{
- uint i,
+ size_t i,
lo = 0,
hi = m_uiCount;
int res;
}
// add item at the given position
-void wxBaseArray::Insert(long lItem, uint uiIndex)
+void wxBaseArray::Insert(long lItem, size_t uiIndex)
{
- wxCHECK_RET( uiIndex <= m_uiCount, "bad index in wxArray::Insert" );
+ wxCHECK_RET( uiIndex <= m_uiCount, _("bad index in wxArray::Insert") );
Grow();
}
// removes item from array (by index)
-void wxBaseArray::Remove(uint uiIndex)
+void wxBaseArray::Remove(size_t uiIndex)
{
- wxCHECK_RET( uiIndex <= m_uiCount, "bad index in wxArray::Remove" );
+ wxCHECK_RET( uiIndex <= m_uiCount, _("bad index in wxArray::Remove") );
memmove(&m_pItems[uiIndex], &m_pItems[uiIndex + 1],
(m_uiCount - uiIndex - 1)*sizeof(long));
int iIndex = Index(lItem);
wxCHECK_RET( iIndex != NOT_FOUND,
- "removing inexistent item in wxArray::Remove" );
+ _("removing inexistent item in wxArray::Remove") );
- Remove((uint)iIndex);
+ Remove((size_t)iIndex);
}
// sort array elements using passed comparaison function