Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
xbt_dynar_map did not work well with dynars of structs.
authorChristophe Thiéry <christopho128@gmail.com>
Mon, 18 Apr 2011 09:05:36 +0000 (11:05 +0200)
committerChristophe Thiéry <christopho128@gmail.com>
Mon, 18 Apr 2011 09:05:36 +0000 (11:05 +0200)
Also remove a useless memcpy.

src/xbt/dynar.c

index 52d11fb..51d207b 100644 (file)
@@ -676,12 +676,13 @@ XBT_INLINE void xbt_dynar_shift(xbt_dynar_t const dynar, void *const dst)
 
 static void _dynar_map(const xbt_dynar_t dynar, void_f_pvoid_t const op)
 {
 
 static void _dynar_map(const xbt_dynar_t dynar, void_f_pvoid_t const op)
 {
-  char elm[SIZEOF_MAX];
+  char *const data = (char *) dynar->data;
+  const unsigned long elmsize = dynar->elmsize;
   const unsigned long used = dynar->used;
   const unsigned long used = dynar->used;
-  unsigned long i = 0;
+  unsigned long i;
 
   for (i = 0; i < used; i++) {
 
   for (i = 0; i < used; i++) {
-    _xbt_dynar_get_elm(elm, dynar, i);
+    char* elm = (char*) data + i * elmsize;
     (*op) (elm);
   }
 }
     (*op) (elm);
   }
 }