]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dynarray.cpp
* Fixed two memory leaks.
[wxWidgets.git] / src / common / dynarray.cpp
index db5396e0ad28bd5a8096c719572f7952810bd768..305a1f07d4f147238839bec84bdad70b8234d246 100644 (file)
@@ -24,6 +24,7 @@
 #endif
 
 #include "wx/dynarray.h"
 #endif
 
 #include "wx/dynarray.h"
+#include <wx/intl.h>
 
 #include <stdlib.h>
 #include <string.h> // for memmove
 
 #include <stdlib.h>
 #include <string.h> // for memmove
@@ -52,7 +53,7 @@ wxBaseArray::wxBaseArray()
 {
   m_uiSize  =
   m_uiCount = 0;
 {
   m_uiSize  =
   m_uiCount = 0;
-  m_pItems  = NULL;
+  m_pItems  = (long *) NULL;
 }
 
 // copy ctor
 }
 
 // copy ctor
@@ -66,13 +67,20 @@ wxBaseArray::wxBaseArray(const wxBaseArray& src)
     memcpy(m_pItems, src.m_pItems, m_uiCount*sizeof(long));
   }
   else
     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)
 {
 }
 
 // assignment operator
 wxBaseArray& wxBaseArray::operator=(const wxBaseArray& src)
 {
+#if 0
   wxDELETEA(m_pItems);
   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;
 
   m_uiSize  = // not src.m_uiSize to save memory
   m_uiCount = src.m_uiCount;
@@ -82,7 +90,7 @@ wxBaseArray& wxBaseArray::operator=(const wxBaseArray& src)
     memcpy(m_pItems, src.m_pItems, m_uiCount*sizeof(long));
   }
   else
     memcpy(m_pItems, src.m_pItems, m_uiCount*sizeof(long));
   }
   else
-    m_pItems = NULL;
+    m_pItems = (long *) NULL;
 
   return *this;
 }
 
   return *this;
 }
@@ -100,7 +108,7 @@ void wxBaseArray::Grow()
     else
     {
       // add 50% but not too much
     else
     {
       // add 50% but not too much
-      uint uiIncrement = m_uiSize < WX_ARRAY_DEFAULT_INITIAL_SIZE 
+      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;
                          ? WX_ARRAY_DEFAULT_INITIAL_SIZE : m_uiSize >> 1;
       if ( uiIncrement > ARRAY_MAXSIZE_INCREMENT )
         uiIncrement = ARRAY_MAXSIZE_INCREMENT;
@@ -131,7 +139,7 @@ void wxBaseArray::Clear()
 }
 
 // pre-allocates memory (frees the previous data!)
 }
 
 // pre-allocates memory (frees the previous data!)
-void wxBaseArray::Alloc(uint uiSize)
+void wxBaseArray::Alloc(size_t uiSize)
 {
   wxASSERT( uiSize > 0 );
 
 {
   wxASSERT( uiSize > 0 );
 
@@ -150,7 +158,7 @@ int wxBaseArray::Index(long lItem, bool bFromEnd) const
 {
   if ( bFromEnd ) {
     if ( m_uiCount > 0 ) {
 {
   if ( bFromEnd ) {
     if ( m_uiCount > 0 ) {
-      uint ui = m_uiCount;
+      size_t ui = m_uiCount;
       do {
         if ( m_pItems[--ui] == lItem )
           return ui;
       do {
         if ( m_pItems[--ui] == lItem )
           return ui;
@@ -159,7 +167,7 @@ int wxBaseArray::Index(long lItem, bool bFromEnd) const
     }
   }
   else {
     }
   }
   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;
     }
       if( m_pItems[ui] == lItem )
         return ui;
     }
@@ -171,7 +179,7 @@ int wxBaseArray::Index(long lItem, bool bFromEnd) const
 // search for an item in a sorted array (binary search)
 int wxBaseArray::Index(long lItem, CMPFUNC fnCompare) const
 {
 // 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;
        lo = 0,
        hi = m_uiCount;
   int res;
@@ -200,7 +208,7 @@ void wxBaseArray::Add(long lItem)
 // add item assuming the array is sorted with fnCompare function
 void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
 {
 // 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;
        lo = 0,
        hi = m_uiCount;
   int res;
@@ -225,9 +233,9 @@ void wxBaseArray::Add(long lItem, CMPFUNC fnCompare)
 }
 
 // add item at the given position
 }
 
 // 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();
 
 
   Grow();
 
@@ -238,9 +246,9 @@ void wxBaseArray::Insert(long lItem, uint uiIndex)
 }
 
 // removes item from array (by index)
 }
 
 // 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));
 
   memmove(&m_pItems[uiIndex], &m_pItems[uiIndex + 1],
           (m_uiCount - uiIndex - 1)*sizeof(long));
@@ -253,9 +261,9 @@ void wxBaseArray::Remove(long lItem)
   int iIndex = Index(lItem);
 
   wxCHECK_RET( iIndex != NOT_FOUND,
   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
 }
 
 // sort array elements using passed comparaison function