X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/093b834960aa7457d220feacad9542c4606ed8a0..0d91eb785e074cc53f856ef1378b50fbaf631dc1:/src/simdag/sd_dotloader.cpp diff --git a/src/simdag/sd_dotloader.cpp b/src/simdag/sd_dotloader.cpp index 0960689062..b4f8b3b733 100644 --- a/src/simdag/sd_dotloader.cpp +++ b/src/simdag/sd_dotloader.cpp @@ -7,7 +7,7 @@ #include "simdag_private.hpp" #include "simgrid/simdag.h" #include "src/internal_config.h" -#include "xbt/file.h" +#include "xbt/file.hpp" #include #include @@ -212,10 +212,10 @@ xbt_dynar_t SD_dotload_generic(const char* filename, bool sequential, bool sched if(schedule){ if (schedule_success) { - const sg_host_t *workstations = sg_host_list (); - for (auto elm : computers) { + sg_host_t* workstations = sg_host_list(); + for (auto const& elm : computers) { SD_task_t previous_task = nullptr; - for (auto task : *elm.second) { + for (auto const& task : *elm.second) { /* add dependency between the previous and the task to avoid parallel execution */ if(task){ if (previous_task && not SD_task_dependency_exists(previous_task, task)) @@ -227,9 +227,10 @@ xbt_dynar_t SD_dotload_generic(const char* filename, bool sequential, bool sched } delete elm.second; } + xbt_free(workstations); } else { XBT_WARN("The scheduling is ignored"); - for (auto elm : computers) + for (auto const& elm : computers) delete elm.second; xbt_dynar_free(&result); result = nullptr; @@ -237,9 +238,8 @@ xbt_dynar_t SD_dotload_generic(const char* filename, bool sequential, bool sched } if (result && not acyclic_graph_detail(result)) { - char* base = xbt_basename(filename); - XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", base); - free(base); + std::string base = simgrid::xbt::Path(filename).getBasename(); + XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", base.c_str()); xbt_dynar_free(&result); result = nullptr; }