X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/13667460824c1a4d55d44f96adaee6eeda2394f4..8e6685471ba9c55bf3bdee4eefd6ba8c5bb6d86f:/src/smpi/mpi/smpi_f2c.cpp diff --git a/src/smpi/mpi/smpi_f2c.cpp b/src/smpi/mpi/smpi_f2c.cpp index ffd795fdbb..920650f2a3 100644 --- a/src/smpi/mpi/smpi_f2c.cpp +++ b/src/smpi/mpi/smpi_f2c.cpp @@ -3,8 +3,8 @@ /* 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 "private.h" #include "smpi_f2c.hpp" +#include "private.hpp" #include "smpi_process.hpp" #include @@ -39,7 +39,7 @@ char* F2C::get_key(char* key, int id) { } char* F2C::get_key_id(char* key, int id) { - std::snprintf(key, KEY_SIZE, "%x_%d", static_cast(id), smpi_process()->index()); + std::snprintf(key, KEY_SIZE, "%x_%ld", static_cast(id), simgrid::s4u::this_actor::getPid()); return key; } @@ -75,7 +75,7 @@ int F2C::c2f() f2c_lookup_ = new std::unordered_map; } - for (auto elm : *f2c_lookup_) + for (auto const& elm : *f2c_lookup_) if (elm.second == this) return std::stoi(elm.first); @@ -90,11 +90,8 @@ F2C* F2C::f2c(int id) if(id >= 0){ char key[KEY_SIZE]; - try { - return f2c_lookup_->at(get_key(key, id)); - } catch (std::out_of_range& unfound) { - return nullptr; - } + auto comm = f2c_lookup_->find(get_key(key, id)); + return comm == f2c_lookup_->end() ? nullptr : comm->second; }else return nullptr; }