X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/093b834960aa7457d220feacad9542c4606ed8a0..a1e141180960ef6c943d48c19fa9c4e114813db0:/src/smpi/include/smpi_keyvals.hpp diff --git a/src/smpi/include/smpi_keyvals.hpp b/src/smpi/include/smpi_keyvals.hpp index 986540f4e9..48f60ac4a4 100644 --- a/src/smpi/include/smpi_keyvals.hpp +++ b/src/smpi/include/smpi_keyvals.hpp @@ -7,29 +7,28 @@ #define SMPI_KEYVALS_HPP_INCLUDED #include "smpi/smpi.h" -#include "xbt/ex.hpp" #include -typedef struct smpi_delete_fn{ +struct smpi_delete_fn { MPI_Comm_delete_attr_function *comm_delete_fn; MPI_Type_delete_attr_function *type_delete_fn; MPI_Win_delete_attr_function *win_delete_fn; -} smpi_delete_fn; +}; -typedef struct smpi_copy_fn{ +struct smpi_copy_fn { MPI_Comm_copy_attr_function *comm_copy_fn; MPI_Type_copy_attr_function *type_copy_fn; MPI_Win_copy_attr_function *win_copy_fn; -} smpi_copy_fn; +}; -typedef struct s_smpi_key_elem { +struct s_smpi_key_elem_t { smpi_copy_fn copy_fn; smpi_delete_fn delete_fn; int refcount; -} s_smpi_mpi_key_elem_t; +}; -typedef struct s_smpi_key_elem *smpi_key_elem; +typedef s_smpi_key_elem_t* smpi_key_elem; namespace simgrid{ namespace smpi{ @@ -54,7 +53,7 @@ class Keyval{ template int Keyval::keyval_create(smpi_copy_fn copy_fn, smpi_delete_fn delete_fn, int* keyval, void* extra_state){ - smpi_key_elem value = (smpi_key_elem) xbt_new0(s_smpi_mpi_key_elem_t,1); + smpi_key_elem value = new s_smpi_key_elem_t; value->copy_fn=copy_fn; value->delete_fn=delete_fn; @@ -75,7 +74,7 @@ template int Keyval::keyval_free(int* keyval){ } if(elem->refcount==1){ T::keyvals_.erase(*keyval); - xbt_free(elem); + delete elem; }else{ elem->refcount--; } @@ -140,7 +139,7 @@ template int Keyval::attr_put(int keyval, void* attr_value){ template void Keyval::cleanup_attr(){ if (not attributes()->empty()) { int flag=0; - for(auto it : attributes_){ + for (auto const& it : attributes_) { auto elm = T::keyvals_.find(it.first); if (elm != T::keyvals_.end()) { smpi_key_elem elem = elm->second;