Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move the type definition to a specific header so that we can share it with the code...
[simgrid.git] / src / xbt / dynar.c
index fc66a87..a9e768e 100644 (file)
@@ -7,6 +7,7 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
+#include "portable.h" /* SIZEOF_MAX */
 #include "xbt/misc.h"
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
 #include "xbt/dynar.h"
 #include <sys/types.h>
 
-
+#include "xbt/dynar_private.h" /* type definition, which we share with the 
+                                 code in charge of sending this across the net */
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(dynar,xbt,"Dynamic arrays");
 
-typedef struct xbt_dynar_s {
-  unsigned long          size;
-  unsigned long          used;
-  unsigned long          elmsize;
-  void           *data;
-  void_f_pvoid_t *free_f;
-} s_xbt_dynar_t;
 
 #define __sanity_check_dynar(dynar)       \
            xbt_assert0(dynar,           \
@@ -76,7 +71,7 @@ _xbt_dynar_expand(xbt_dynar_t const dynar,
     if (old_data) {
       memcpy(new_data, old_data, used_length);
       _xbt_clear_mem(old_data, old_length);
-      xbt_free(old_data);
+      free(old_data);
     }
 
     _xbt_clear_mem(new_data + used_length, new_length - used_length);
@@ -157,12 +152,12 @@ xbt_dynar_free_container(xbt_dynar_t *dynar) {
 
     if ((*dynar)->data) {
       _xbt_clear_mem((*dynar)->data, (*dynar)->size);
-      xbt_free((*dynar)->data);
+      free((*dynar)->data);
     }
 
     _xbt_clear_mem(*dynar, sizeof(s_xbt_dynar_t));
 
-    xbt_free(*dynar);
+    free(*dynar);
     *dynar=NULL;
   }
 }
@@ -182,7 +177,7 @@ xbt_dynar_reset(xbt_dynar_t const dynar) {
   }
 
   if (dynar->data)
-    xbt_free(dynar->data);
+    free(dynar->data);
 
   dynar->size = 0;
   dynar->used = 0;
@@ -466,7 +461,7 @@ xbt_dynar_map(const xbt_dynar_t  dynar,
   __sanity_check_dynar(dynar);
 
   {
-    char         elm[64];
+    char         elm[SIZEOF_MAX];
     const unsigned long used = dynar->used;
     unsigned long       i    = 0;
 
@@ -535,7 +530,7 @@ void xbt_dynar_cursor_rm(xbt_dynar_t dynar,
       dst=xbt_malloc(dynar->elmsize);
       xbt_dynar_remove_at(dynar,(*cursor)--,dst);
       (dynar->free_f)(dst);
-      xbt_free(dst);
+      free(dst);
     } else {
       DEBUG0("Ok, we dont care about the element without free function");
       xbt_dynar_remove_at(dynar,(*cursor)--,NULL);