Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Print more information in xbt_dynar_compare.
[simgrid.git] / src / xbt / dynar.c
index 1d58b67..5df4655 100644 (file)
@@ -441,7 +441,6 @@ xbt_dynar_replace(xbt_dynar_t dynar,
 {
   _dynar_lock(dynar);
   _sanity_check_dynar(dynar);
-  _sanity_check_idx(idx);
 
   if (idx < dynar->used && dynar->free_f) {
     void *const old_object = _xbt_dynar_elm(dynar, idx);
@@ -734,16 +733,29 @@ XBT_INLINE int xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
        int i ;
        int size;
        if((!d1) && (!d2)) return 0;
-       if((!d1) || (!d2)) return 1;
-       if((d1->elmsize)!=(d2->elmsize)) return 1; // xbt_die
-       if(xbt_dynar_length(d1) != xbt_dynar_length(d2)) return 1;
+       if((!d1) || (!d2))
+       {
+               DEBUG2("NULL dynar d1=%p d2=%p",d1,d2);
+               return 1;
+       }
+       if((d1->elmsize)!=(d2->elmsize))
+       {
+               DEBUG2("Size of elmsize d1=%ld d2=%ld",d1->elmsize,d2->elmsize);
+               return 1; // xbt_die
+       }
+       if(xbt_dynar_length(d1) != xbt_dynar_length(d2))
+       {
+               DEBUG2("Size of dynar d1=%ld d2=%ld",xbt_dynar_length(d1),xbt_dynar_length(d2));
+               return 1;
+       }
 
        size = xbt_dynar_length(d1);
        for(i=0;i<size;i++)
        {
                void *data1 = xbt_dynar_get_as(d1, i, void *);
                void *data2 = xbt_dynar_get_as(d2, i, void *);
-               if(!compar(data1,data2)) return 1;
+               DEBUG3("link[%d] d1=%p d2=%p",i,data1,data2);
+               if(compar(data1,data2)) return 1;
        }
        return 0;
 }
@@ -914,7 +926,8 @@ XBT_TEST_UNIT("int", test_dynar_int, "Dynars of integers")
 XBT_TEST_UNIT("insert",test_dynar_insert,"Using the xbt_dynar_insert and xbt_dynar_remove functions")
 {
   xbt_dynar_t d = xbt_dynar_new(sizeof(int), NULL);
-  unsigned int cursor,cpt;
+  unsigned int cursor;
+  int cpt;
 
   xbt_test_add1("==== Insert %d int, traverse them, remove them",NB_ELEM);
   /* Populate_ints [doxygen cruft] */