/* 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 <xbt/ex.hpp>
+
#include "private.h"
#include "smpi_mpi_dt_private.h"
return MPI_SUCCESS;
}
-int PMPI_Finalize(void)
+int PMPI_Finalize()
{
smpi_bench_end();
int rank = smpi_process_index();
return MPI_SUCCESS;
}
-double PMPI_Wtime(void)
+double PMPI_Wtime()
{
return smpi_mpi_wtime();
}
extern double sg_maxmin_precision;
-double PMPI_Wtick(void)
+double PMPI_Wtick()
{
return sg_maxmin_precision;
}
if (info == nullptr)
return MPI_ERR_ARG;
*info = xbt_new(s_smpi_mpi_info_t, 1);
- (*info)->info_dict= xbt_dict_new_homogeneous(nullptr);
+ (*info)->info_dict= xbt_dict_new_homogeneous(xbt_free_f);
(*info)->refcount=1;
return MPI_SUCCESS;
}
if (info == nullptr || key == nullptr || value == nullptr)
return MPI_ERR_ARG;
- xbt_dict_set(info->info_dict, key, (void*)value, nullptr);
+ xbt_dict_set(info->info_dict, key, xbt_strdup(value), nullptr);
return MPI_SUCCESS;
}
if (info == nullptr || newinfo==nullptr)
return MPI_ERR_ARG;
*newinfo = xbt_new(s_smpi_mpi_info_t, 1);
- (*newinfo)->info_dict= xbt_dict_new_homogeneous(nullptr);
+ (*newinfo)->info_dict= xbt_dict_new_homogeneous(xbt_free_f);
(*newinfo)->refcount=1;
xbt_dict_cursor_t cursor = nullptr;
int *key;
void* data;
xbt_dict_foreach(info->info_dict,cursor,key,data){
- xbt_dict_set((*newinfo)->info_dict, reinterpret_cast<char*>(key), data, nullptr);
+ xbt_dict_set((*newinfo)->info_dict, reinterpret_cast<char*>(key), xbt_strdup(reinterpret_cast<char*>(data)), nullptr);
}
return MPI_SUCCESS;
}