whelk/wait.c
changeset 7 565f6683213f
parent 3 47fa028d40b3
     1.1 --- a/whelk/wait.c	Tue Aug 18 14:11:42 2009 +0100
     1.2 +++ b/whelk/wait.c	Wed Aug 26 22:34:27 2009 +0100
     1.3 @@ -5,7 +5,7 @@
     1.4  int whelk_wait_add_object(struct whelk_wait *wait,HANDLE object)
     1.5  {
     1.6      HANDLE *new;
     1.7 -    new=realloc(wait->objects,wait->no_objects+1);
     1.8 +    new=realloc(wait->objects,(wait->no_objects+1)*sizeof(*wait->objects));
     1.9      if (!new)
    1.10  	return -1;
    1.11      wait->objects=new;
    1.12 @@ -19,6 +19,8 @@
    1.13      for(i=0;i<wait->no_objects;i++)
    1.14  	if (wait->objects[i]==object)
    1.15  	    break;
    1.16 +    if (i==wait->no_objects)
    1.17 +	return;
    1.18      if (i!=wait->no_objects-1)
    1.19  	memcpy(wait->objects+i,wait->objects+i+1,
    1.20  	  (wait->no_objects-i-1)*sizeof(*wait->objects));
    1.21 @@ -44,4 +46,5 @@
    1.22  void whelk_wait_free(struct whelk_wait *wait)
    1.23  {
    1.24      free(wait->objects);
    1.25 +    wait->objects=NULL;
    1.26  }