Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use simpler std::vector.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 23 Feb 2022 22:17:24 +0000 (23:17 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 24 Feb 2022 10:54:43 +0000 (11:54 +0100)
src/mc/explo/simgrid_mc.cpp

index 8da0002..7087b00 100644 (file)
 
 using api = simgrid::mc::Api;
 
-static inline char** argvdup(int argc, char** argv)
-{
-  auto* argv_copy = new char*[argc + 1];
-  std::memcpy(argv_copy, argv, sizeof(char*) * argc);
-  argv_copy[argc] = nullptr;
-  return argv_copy;
-}
-
 int main(int argc, char** argv)
 {
   xbt_assert(argc >= 2, "Missing arguments");
@@ -36,7 +28,7 @@ int main(int argc, char** argv)
 
   // The initialization function can touch argv.
   // We make a copy of argv before modifying it in order to pass the original value to the model-checked application:
-  char** argv_copy = argvdup(argc, argv);
+  std::vector<char*> argv_copy{argv, argv + argc + 1};
 
   xbt_log_init(&argc, argv);
 #if HAVE_SMPI
@@ -55,7 +47,7 @@ int main(int argc, char** argv)
     algo = simgrid::mc::CheckerAlgorithm::Liveness;
 
   int res      = SIMGRID_MC_EXIT_SUCCESS;
-  auto checker = api::get().initialize(argv_copy, algo);
+  auto checker = api::get().initialize(argv_copy.data(), algo);
   try {
     checker->run();
   } catch (const simgrid::mc::DeadlockError&) {
@@ -66,7 +58,6 @@ int main(int argc, char** argv)
     res = SIMGRID_MC_EXIT_LIVENESS;
   }
   api::get().s_close();
-  delete[] argv_copy;
   // delete checker; SEGFAULT in liveness
   return res;
 }