Browse Source

fix an other bug in bitmap.c

Simon Archipoff 12 years ago
parent
commit
95c6a18434
1 changed files with 3 additions and 3 deletions
  1. 3 3
      src/sched_policies/bitmap.c

+ 3 - 3
src/sched_policies/bitmap.c

@@ -46,13 +46,13 @@ struct _starpu_bitmap * _starpu_bitmap_create(void)
 }
 void _starpu_bitmap_destroy(struct _starpu_bitmap * b)
 {
-
 	free(b->bits);
 	free(b);
 }
 
 void _starpu_bitmap_set(struct _starpu_bitmap * b, int e)
 {
+
 	if(!_starpu_bitmap_get(b, e))
 		b->cardinal++;
 	if((e/LONG_BIT) + 1 > b->size)
@@ -142,7 +142,7 @@ int _starpu_bitmap_first(struct _starpu_bitmap * b)
 		return -1;
 	int nb_long = i;
 	unsigned long ms = b->bits[i];
-	int m = 1;
+	unsigned long m = 1;
 	i = 0;
 	while(1)
 		if(m&ms)
@@ -191,7 +191,7 @@ int _starpu_bitmap_next(struct _starpu_bitmap *b, int e)
 {
 	int nb_long = e / LONG_BIT;
 	int nb_bit = e % LONG_BIT;
-	if((~0ul << (nb_bit + 1)) & b->bits[nb_long])
+	if(nb_bit != (LONG_BIT - 1) && (~0ul << (nb_bit + 1)) & b->bits[nb_long])
 	{
 		unsigned long mask = 1ul<<nb_bit;
 		int i = nb_bit + 1;