X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/77bbf3027c4240a2e833209a3a3f186589da8577..a4c8f1898670317d0fa33bf1b1a904ea922b78cc:/src/smpi/internals/smpi_utils.cpp diff --git a/src/smpi/internals/smpi_utils.cpp b/src/smpi/internals/smpi_utils.cpp index e646ff7ef1..7e029ad36c 100644 --- a/src/smpi/internals/smpi_utils.cpp +++ b/src/smpi/internals/smpi_utils.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2016-2017. The SimGrid Team. +/* Copyright (c) 2016-2019. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -8,10 +8,11 @@ #include "xbt/log.h" #include "xbt/sysdep.h" #include +#include "src/surf/xml/platf_private.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_utils, smpi, "Logging specific to SMPI (utils)"); -std::vector parse_factor(std::string smpi_coef_string) +std::vector parse_factor(const std::string& smpi_coef_string) { std::vector smpi_factor; @@ -42,14 +43,14 @@ std::vector parse_factor(std::string smpi_coef_string) if (factor_iter == factor_values.begin()) { /* first element */ try { fact.factor = std::stoi(*factor_iter); - } catch (std::invalid_argument& ia) { + } catch (const std::invalid_argument&) { throw std::invalid_argument(std::string("Invalid factor in chunk ") + std::to_string(smpi_factor.size() + 1) + ": " + *factor_iter); } } else { try { - fact.values.push_back(std::stod(*factor_iter)); - } catch (std::invalid_argument& ia) { + fact.values.push_back(surf_parse_get_time((*factor_iter).c_str(), "smpi factor", "")); + } catch (const std::invalid_argument&) { throw std::invalid_argument(std::string("Invalid factor value ") + std::to_string(iteration) + " in chunk " + std::to_string(smpi_factor.size() + 1) + ": " + *factor_iter); }