X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c897fb0d193bbe081581d7ea7f579f04df1b5b5d..4bd1f48f0bf1ad1703be680ec2a38d626c6a2668:/src/xbt/xbt_replay.cpp diff --git a/src/xbt/xbt_replay.cpp b/src/xbt/xbt_replay.cpp index 74bc5a3f71..beee5cdbbe 100644 --- a/src/xbt/xbt_replay.cpp +++ b/src/xbt/xbt_replay.cpp @@ -38,6 +38,7 @@ public: fs = new std::ifstream(filename, std::ifstream::in); xbt_assert(fs->is_open(), "Cannot read replay file '%s'", filename); } + ReplayReader(const ReplayReader&) = delete; ~ReplayReader() { delete fs; @@ -78,9 +79,10 @@ static ReplayAction* get_action(char* name) } else { // Else, I have to store it for the relevant colleague std::queue* otherqueue = nullptr; - try { - otherqueue = action_queues.at(evtname); - } catch (std::out_of_range& unfound) { // Damn. Create the queue of that guy + auto act = action_queues.find(evtname); + if (act != action_queues.end()) { + otherqueue = act->second; + } else { // Damn. Create the queue of that guy otherqueue = new std::queue(); action_queues.insert({evtname, otherqueue}); } @@ -103,7 +105,7 @@ static void handle_action(ReplayAction* action) char** c_action = new char*[action->size() + 1]; action_fun function = action_funs.at(action->at(1)); int i = 0; - for (auto arg : *action) { + for (auto const& arg : *action) { c_action[i] = xbt_strdup(arg.c_str()); i++; } @@ -177,7 +179,7 @@ int replay_runner(int argc, char* argv[]) */ void xbt_replay_action_register(const char* action_name, action_fun function) { - simgrid::xbt::action_funs.insert({std::string(action_name), function}); + simgrid::xbt::action_funs[std::string(action_name)] = function; } /**