}
char* tvalue = xbt_new(char,valuelen+1);
strncpy(tvalue, value, valuelen);
-
tvalue[valuelen]='\0';
+
*ierr = MPI_Info_set( smpi_info_f2c(*info), tkey, tvalue);
xbt_free(tkey);
}
void mpi_info_free_(int* info, int* ierr){
MPI_Info tmp = smpi_info_f2c(*info);
+ const char* key;
+ char* val;
+ xbt_dict_cursor_t cursor;
+ xbt_dict_foreach(tmp->info_dict,cursor,key,val) {
+ xbt_free(val);
+ }
*ierr = MPI_Info_free(&tmp);
if(*ierr == MPI_SUCCESS) {
free_info(*info);
static s_smpi_mpi_datatype_t mpi_##name = { \
(char*) # name, \
sizeof(type), /* size */ \
- 0, /*was 1 sizeof_substruct*/ \
+ 0, /*was 1 sizeof_substruct*/ \
0, /* lb */ \
sizeof(type), /* ub = lb + size */ \
DT_FLAG_BASIC, /* flags */ \
- nullptr, /* attributes */ \
- nullptr, /* pointer on extended struct*/ \
+ nullptr, /* attributes */ \
+ nullptr, /* pointer on extended struct*/ \
0 /* in_use counter */ \
}; \
const MPI_Datatype name = &mpi_##name;
static s_smpi_mpi_datatype_t mpi_##name = { \
(char*) # name, \
0, /* size */ \
- 0, /* was 1 sizeof_substruct*/ \
+ 0, /* was 1 sizeof_substruct*/ \
0, /* lb */ \
0, /* ub = lb + size */ \
DT_FLAG_BASIC, /* flags */ \
- nullptr, /* attributes */ \
- nullptr, /* pointer on extended struct*/ \
+ nullptr, /* attributes */ \
+ nullptr, /* pointer on extended struct*/ \
0 /* in_use counter */ \
}; \
const MPI_Datatype name = &mpi_##name;
new_t->base.subtype_use = &use_hindexed;
new_t->block_lengths= xbt_new(int, block_count);
new_t->block_indices= xbt_new(MPI_Aint, block_count);
- int i;
- for(i=0;i<block_count;i++){
+ for(int i=0;i<block_count;i++){
new_t->block_lengths[i]=block_lengths[i];
new_t->block_indices[i]=block_indices[i];
}