Changeset 148 for trunk/lib/range_list.c


Ignore:
Timestamp:
02/22/09 18:22:59 (15 years ago)
Author:
tim
Message:

integrated talloc into range_list

fixed some uninitialized structure values in the winsec library

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/range_list.c

    r147 r148  
    1818 */
    1919
    20 #include <math.h>
    2120#include "range_list.h"
    2221
     
    2726#define RANGE_LIST_ALLOC_SIZE 256
    2827
    29 #if 0
     28#if 0 /* For debugging */
    3029#include <stdio.h>
    3130static void range_list_print(const range_list* rl)
     
    5352  if(rl->size == rl->elem_alloced)
    5453  {
    55     tmp = (range_list_element**)realloc(rl->elements,
    56                                         (rl->elem_alloced+RANGE_LIST_ALLOC_SIZE)
    57                                         * sizeof(range_list_element*));
     54    tmp = talloc_realloc(rl, rl->elements, range_list_element*,
     55                         (rl->elem_alloced+RANGE_LIST_ALLOC_SIZE));
    5856    if(tmp == NULL)
    5957      return false;
     
    125123  range_list* rl;
    126124
    127   rl = (range_list*)malloc(sizeof(range_list));
     125  rl = talloc(NULL, range_list);
    128126  if(rl == NULL)
    129127    return NULL;
    130128
    131   rl->elements = (range_list_element**)malloc(sizeof(range_list_element*)
    132                                               * RANGE_LIST_ALLOC_SIZE);
    133 
     129  rl->elements = talloc_array(rl, range_list_element*, RANGE_LIST_ALLOC_SIZE);
    134130  if(rl->elements == NULL)
    135131  {
    136     free(rl);
     132    talloc_free(rl);
    137133    return NULL;
    138134  }
     
    147143void range_list_free(range_list* rl)
    148144{
    149   uint32_t i;
    150 
    151145  if(rl == NULL)
    152146    return;
    153147
    154   for(i=0; i < rl->size; i++)
    155     free(rl->elements[i]);
    156 
    157   free(rl->elements);
    158   free(rl);
     148  talloc_free(rl);
    159149}
    160150
     
    201191    return false;
    202192
    203   elem = (range_list_element*)malloc(sizeof(range_list_element));
     193  elem = talloc(rl->elements, range_list_element);
    204194  if(elem == NULL)
    205195    return false;
     
    210200  if(!range_list_insert(rl, elem, insert_index))
    211201  {
    212     free(elem);
     202    talloc_free(elem);
    213203    return false;
    214204  }
     
    226216    return false;
    227217
    228   free(rl->elements[index]);
     218  talloc_free(rl->elements[index]);
    229219
    230220  /* Do the shuffle to the left. */
     
    237227  if(rl->size + 2 * RANGE_LIST_ALLOC_SIZE  < rl->elem_alloced)
    238228  {
    239     tmp = (range_list_element**)realloc(rl->elements,
    240                                         (rl->elem_alloced-2*RANGE_LIST_ALLOC_SIZE)
    241                                         * sizeof(range_list_element*));
     229    tmp = talloc_realloc(rl, rl->elements, range_list_element*,
     230                         (rl->elem_alloced-2*RANGE_LIST_ALLOC_SIZE));
    242231    if(tmp != NULL)
    243232    {
     
    305294    return false;
    306295
    307   new_elem = (range_list_element*)malloc(sizeof(range_list_element));
     296  new_elem = talloc(rl->elements, range_list_element);
    308297  if(new_elem == NULL)
    309298    return false;
     
    315304  if(!range_list_insert(rl, new_elem, index+1))
    316305  {
    317     free(new_elem);
     306    talloc_free(new_elem);
    318307    return false;
    319308  }
Note: See TracChangeset for help on using the changeset viewer.