+/*
+ * Return 0 if d1 and d2 are equal and 1 if not equal
+ */
+XBT_INLINE int xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
+ int(*compar)(const void *, const void *))
+{
+ 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;
+
+ 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;
+ }
+ return 0;
+}
+