/* Functions to handle gras_procdata_t->libdata cells*/
typedef struct {
char *name;
- pvoid_f_void_t *constructor;
- void_f_pvoid_t *destructor;
+ pvoid_f_void_t constructor;
+ void_f_pvoid_t destructor;
} s_gras_procdata_fabric_t, *gras_procdata_fabric_t;
static xbt_dynar_t _gras_procdata_fabrics = NULL; /* content: s_gras_procdata_fabric_t */
xbt_dynar_foreach(_gras_procdata_fabrics,cursor,fab){
volatile int found = 0;
- if (cursor+1 <= xbt_set_length(pd->libdata)) {
+ if (cursor+1 <= (int)xbt_set_length(pd->libdata)) {
DEBUG2("Skip fabric %d: there is already %ld libdata",
cursor, xbt_set_length(pd->libdata));
continue; /* allow to recall this function to get recently added fabrics */
THROW1(unknown_error,0,"MayDay: two modules use '%s' as libdata name", fab.name);
/* Add the data in place, after some more sanity checking */
- elem = (fab.constructor)();
+ elem = (*(fab.constructor))();
if (elem->name_len && elem->name_len != strlen(elem->name)) {
elem->name_len = strlen(elem->name);
WARN1("Module '%s' constructor is borken: it does not set elem->name_len",