Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
define types used by fortran even when only C code is used (needed sometimes)
[simgrid.git] / include / smpi / smpi_cocci.h
index 8243e7a..f938a9b 100644 (file)
@@ -15,7 +15,7 @@
 type *name = NULL;                                              \
 static void __attribute__((constructor)) __preinit_##name(void) { \
    if(!name)                                                    \
-      name = (type*)malloc(smpi_global_size() * sizeof(type));  \
+      name = (type*)calloc(smpi_global_size(), sizeof(type));   \
 }                                                               \
 static void __attribute__((destructor)) __postfini_##name(void) { \
    free(name);                                                  \
@@ -55,8 +55,8 @@ XBT_PUBLIC(void) smpi_free_static(void);
 #define SMPI_VARINIT_STATIC(name,type)                      \
 static type *name = NULL;                                   \
 if(!name) {                                                 \
-   name = (type*)malloc(smpi_global_size() * sizeof(type)); \
-   smpi_register_static(name, xbt_free);                    \
+   name = (type*)calloc(smpi_global_size(), sizeof(type));  \
+   smpi_register_static(name, xbt_free_f);                  \
 }
 
 #define SMPI_VARINIT_STATIC_AND_SET(name,type,expr) \
@@ -69,7 +69,7 @@ if(!name) {                                         \
    for(i = 0; i < size; i++) {                      \
       name[i] = value;                              \
    }                                                \
-   smpi_register_static(name, xbt_free);            \
+   smpi_register_static(name, xbt_free_f);          \
 }
 
 #define SMPI_VARGET_STATIC(name) name[smpi_process_index()]