Diff for /libelwix/src/array.c between versions 1.7 and 1.10

version 1.7, 2019/01/21 12:27:37 version 1.10, 2024/10/28 09:58:51
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004 - 2019Copyright 2004 - 2024
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 68  array_Init(int numItems) Line 68  array_Init(int numItems)
                 e_free(arr);                  e_free(arr);
                 return NULL;                  return NULL;
         } else          } else
                array_Zero(arr);                memset(arr->arr_data, 0, array_Size(arr) * sizeof(intptr_t));
   
         return arr;          return arr;
 }  }
   
 /*  /*
    * array_Init2() - Initialize dynamic array
    *
    * @arr = Allocated array variable
    * @numItems = Number of Items
    * return: NULL error, != NULL allocated memory for array
    */
   array_t *
   array_Init2(array_t * __restrict arr, int numItems)
   {
           if (!arr)
                   return array_Init(numItems);
   
           if (array_Size(arr))
                   return NULL;    /* already allocated array! */
   
           arr->arr_last = -1;
           arr->arr_num = numItems;
           arr->arr_data = e_calloc(array_Size(arr), sizeof(intptr_t));
           if (!arr->arr_data) {
                   e_free(arr);
                   return NULL;
           } else
                   memset(arr->arr_data, 0, array_Size(arr) * sizeof(intptr_t));
   
           return arr;
   }
   
   
   /*
  * array_From() - Create and fill array from array with pointers   * array_From() - Create and fill array from array with pointers
  *   *
  * @pargv = Array with pointers   * @pargv = Array with pointers
Line 146  array_Free(array_t * __restrict arr) Line 175  array_Free(array_t * __restrict arr)
                 return;                  return;
   
         for (i = 0; i < array_Size(arr); i++)          for (i = 0; i < array_Size(arr); i++)
                if (arr->arr_data[i]) {                if (arr->arr_data[i])
                         e_free(arr->arr_data[i]);                          e_free(arr->arr_data[i]);
                         arr->arr_data[i] = NULL;  
                 }  
   
        arr->arr_last = -1;        array_Zero(arr);
 }  }
   
 /*  /*
Line 173  array_Destroy(array_t ** __restrict parr) Line 200  array_Destroy(array_t ** __restrict parr)
 }  }
   
 /*  /*
    * array_Destroy2() - Free data in dynamic array
    *
    * @parr = Array
    * return: none
    */
   void
   array_Destroy2(array_t * __restrict arr)
   {
           if (!arr)
                   return;
   
           if (arr->arr_data)
                   e_free(arr->arr_data);
           memset(arr, 0, sizeof(array_t));
   }
   /*
  * array_Reset() - Reset array to initial state   * array_Reset() - Reset array to initial state
  *   *
  * @parr = Array   * @parr = Array
 * @purge = Purge data, if <>0 then will be free entire data memory * @purge = Purge all data, if <>0 then will be free entire data memory
  * return: none   * return: none
  */   */
 void  void
Line 191  array_Reset(array_t * __restrict arr, int purge) Line 234  array_Reset(array_t * __restrict arr, int purge)
                 arr->arr_data = e_calloc(array_Size(arr), sizeof(intptr_t));                  arr->arr_data = e_calloc(array_Size(arr), sizeof(intptr_t));
         }          }
   
        array_Zero(arr);        if (arr->arr_data)
        arr->arr_last = -1;                array_Zero(arr);
 }  }
   
 /*  /*
Line 333  array_Concat(array_t * __restrict dest, array_t * __re Line 376  array_Concat(array_t * __restrict dest, array_t * __re
         n = array_Size(dest);          n = array_Size(dest);
         if (array_Grow(dest, n + array_Size(src), 0))          if (array_Grow(dest, n + array_Size(src), 0))
                 return -1;                  return -1;
           if (!dest->arr_data)
                   return -1;
         memcpy(dest->arr_data + n, src->arr_data, array_Size(src) * sizeof(intptr_t));          memcpy(dest->arr_data + n, src->arr_data, array_Size(src) * sizeof(intptr_t));
   
         dest->arr_last = array_Len(dest);          dest->arr_last = array_Len(dest);
Line 380  array_Elem(array_t * __restrict arr, int n, void *data Line 425  array_Elem(array_t * __restrict arr, int n, void *data
   
         if (n >= array_Size(arr) && array_Grow(arr, n + 1, 0))          if (n >= array_Size(arr) && array_Grow(arr, n + 1, 0))
                 return (void*) -1;                  return (void*) -1;
           if (!arr->arr_data)
                   return (void*) -1;
   
         dat = array_Get(arr, n);          dat = array_Get(arr, n);
         if (data)          if (data)
Line 408  array_Push(array_t * __restrict arr, void *data, int n Line 455  array_Push(array_t * __restrict arr, void *data, int n
         if (nogrow && ret >= array_Size(arr))          if (nogrow && ret >= array_Size(arr))
                 return -1;                  return -1;
         if (!nogrow && ret >= array_Size(arr) && array_Grow(arr, ret + 1, 0))          if (!nogrow && ret >= array_Size(arr) && array_Grow(arr, ret + 1, 0))
                   return -1;
           if (!arr->arr_data)
                 return -1;                  return -1;
   
         ret = ++arr->arr_last;          ret = ++arr->arr_last;

Removed from v.1.7  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>