Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make Transition::textual a std::string.
[simgrid.git] / src / mc / api.cpp
index 94e07824b4aab815ae145deaab30915e1b1d5bd4..90eea9eefd4f3c678c7c7b17059f5d98f12061bb 100644 (file)
@@ -553,11 +553,9 @@ RemotePtr<kernel::activity::MailboxImpl> Api::get_mbox_remote_addr(smx_simcall_t
   RemotePtr<kernel::activity::MailboxImpl> mbox_addr;
   switch (req->call_) {
     case Simcall::COMM_ISEND:
-    case Simcall::COMM_IRECV: {
-      auto mbox_addr_ptr = simix::unmarshal<smx_mailbox_t>(req->args_[1]);
-      mbox_addr          = remote(mbox_addr_ptr);
+    case Simcall::COMM_IRECV:
+      mbox_addr = remote(simix::unmarshal<smx_mailbox_t>(req->args_[1]));
       break;
-    }
     default:
       mbox_addr = RemotePtr<kernel::activity::MailboxImpl>();
       break;
@@ -570,11 +568,9 @@ RemotePtr<kernel::activity::ActivityImpl> Api::get_comm_remote_addr(smx_simcall_
   RemotePtr<kernel::activity::ActivityImpl> comm_addr;
   switch (req->call_) {
     case Simcall::COMM_ISEND:
-    case Simcall::COMM_IRECV: {
-      auto comm_addr_ptr = simgrid::simix::unmarshal_raw<simgrid::kernel::activity::ActivityImpl*>(req->result_);
-      comm_addr          = remote(comm_addr_ptr);
+    case Simcall::COMM_IRECV:
+      comm_addr = remote(simgrid::simix::unmarshal_raw<simgrid::kernel::activity::ActivityImpl*>(req->result_));
       break;
-    }
     default:
       comm_addr = RemotePtr<kernel::activity::ActivityImpl>();
       break;
@@ -655,11 +651,10 @@ std::list<transition_detail_t> Api::get_enabled_transitions(simgrid::mc::State*
     transition->call_             = simcall_call;
     switch (simcall_call) {
       case Simcall::COMM_ISEND:
-      case Simcall::COMM_IRECV: {
+      case Simcall::COMM_IRECV:
         transition->mbox_remote_addr = get_mbox_remote_addr(simcall);
         transition->comm_remote_addr = get_comm_remote_addr(simcall);
         break;
-      }
 
       default:
         break;
@@ -989,10 +984,7 @@ void Api::restore_initial_state() const
 void Api::execute(Transition& transition, smx_simcall_t simcall) const
 {
   /* FIXME: once all simcalls have observers, kill the simcall parameter and use mc_model_checker->simcall_to_string() */
-  auto textual =
-      simgrid::mc::Api::get().request_to_string(simcall, transition.times_considered_, RequestType::executed);
-  strcpy((char*)transition.textual, textual.c_str());
-
+  transition.textual = request_to_string(simcall, transition.times_considered_, RequestType::executed);
   session->execute(transition);
 }