Changeset 99 for trunk/lib/range_list.c


Ignore:
Timestamp:
03/03/08 19:38:48 (16 years ago)
Author:
tim
Message:

fixed a range_list bug

replaced NK parsing routine

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/range_list.c

    r98 r99  
    1818 */
    1919
     20#include <stdio.h>
    2021#include <math.h>
    2122#include "../include/range_list.h"
     
    2627/*******************/
    2728#define RANGE_LIST_ALLOC_SIZE 256
     29
     30
     31static void range_list_print(const range_list* rl)
     32{
     33  uint32_t i;
     34  for(i=0; i<rl->size; i++)
     35    fprintf(stderr, " %d=%p,%d,%d,%p", i, (void*)rl->elements[i],
     36            rl->elements[i]->offset, rl->elements[i]->length,
     37            rl->elements[i]->data);
     38  fprintf(stderr, "\n");
     39}
     40
    2841
    2942/*
     
    4053  if(rl->size == rl->elem_alloced)
    4154  {
    42     tmp = (range_list_element**)realloc(rl->elements, rl->elem_alloced+RANGE_LIST_ALLOC_SIZE);
     55    tmp = (range_list_element**)realloc(rl->elements,
     56                                        (rl->elem_alloced+RANGE_LIST_ALLOC_SIZE)
     57                                        * sizeof(range_list_element*));
    4358    if(tmp == NULL)
    4459      return false;
     
    90105    cur_elem = rl->elements[cur_idx];
    91106
    92     if((offset >= cur_elem->offset) && (offset < (cur_elem+1)->offset))
     107    if((offset >= cur_elem->offset) && (offset < rl->elements[cur_idx+1]->offset))
    93108      return cur_idx;
    94109   
     
    116131  rl->elements = (range_list_element**)malloc(sizeof(range_list_element*)
    117132                                              * RANGE_LIST_ALLOC_SIZE);
     133
    118134  if(rl->elements == NULL)
    119135  {
     
    152168  range_list_element* elem;
    153169  range_list_element* prev_elem;
    154 
     170  /*fprintf(stderr, "DEBUG: rl->size=%d\n", rl->size);*/
    155171  /* Sorry, limited to 2**31-1 elements. */
    156172  if(rl->size >= 0x7FFFFFFF)
     
    215231
    216232  /* Try to keep memory usage down */
    217   if(rl->size < (rl->elem_alloced - 2*RANGE_LIST_ALLOC_SIZE))
     233  if(rl->size < (rl->elem_alloced - 2 * RANGE_LIST_ALLOC_SIZE))
    218234  {
    219235    tmp = (range_list_element**)realloc(rl->elements,
    220                                         rl->elem_alloced - 2*RANGE_LIST_ALLOC_SIZE);
     236                                        (rl->elem_alloced-2*RANGE_LIST_ALLOC_SIZE)
     237                                        * sizeof(range_list_element*));
    221238    if(tmp != NULL)
    222239    {
Note: See TracChangeset for help on using the changeset viewer.