Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC doesn't like strings
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 3 Aug 2017 09:17:16 +0000 (11:17 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 3 Aug 2017 09:17:16 +0000 (11:17 +0200)
src/kernel/activity/MailboxImpl.cpp
src/kernel/activity/MailboxImpl.hpp
src/s4u/s4u_mailbox.cpp

index 330345b..936b249 100644 (file)
@@ -73,14 +73,14 @@ void MailboxImpl::remove(smx_activity_t activity)
       boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(activity);
 
   xbt_assert(comm->mbox == this, "Comm %p is in mailbox %s, not mailbox %s", comm.get(),
       boost::static_pointer_cast<simgrid::kernel::activity::CommImpl>(activity);
 
   xbt_assert(comm->mbox == this, "Comm %p is in mailbox %s, not mailbox %s", comm.get(),
-             (comm->mbox ? comm->mbox->name_.c_str() : "(null)"), this->name_.c_str());
+             (comm->mbox ? comm->mbox->name_ : "(null)"), this->name_);
   comm->mbox = nullptr;
   for (auto it = this->comm_queue.begin(); it != this->comm_queue.end(); it++)
     if (*it == comm) {
       this->comm_queue.erase(it);
       return;
     }
   comm->mbox = nullptr;
   for (auto it = this->comm_queue.begin(); it != this->comm_queue.end(); it++)
     if (*it == comm) {
       this->comm_queue.erase(it);
       return;
     }
-  xbt_die("Comm %p not found in mailbox %s", comm.get(), this->name_.c_str());
+  xbt_die("Comm %p not found in mailbox %s", comm.get(), this->name_);
 }
 }
 }
 }
 }
 }
index c3eb5d5..8c4541d 100644 (file)
@@ -21,12 +21,12 @@ namespace activity {
 
 class MailboxImpl {
   explicit MailboxImpl(const char* name)
 
 class MailboxImpl {
   explicit MailboxImpl(const char* name)
-      : piface_(this), name_(name), comm_queue(MAX_MAILBOX_SIZE), done_comm_queue(MAX_MAILBOX_SIZE)
+      : piface_(this), name_(xbt_strdup(name)), comm_queue(MAX_MAILBOX_SIZE), done_comm_queue(MAX_MAILBOX_SIZE)
   {
   }
 
 public:
   {
   }
 
 public:
-  ~MailboxImpl() = default;
+  ~MailboxImpl() { xbt_free(name_); }
 
   static MailboxImpl* byNameOrNull(const char* name);
   static MailboxImpl* byNameOrCreate(const char* name);
 
   static MailboxImpl* byNameOrNull(const char* name);
   static MailboxImpl* byNameOrCreate(const char* name);
@@ -34,7 +34,7 @@ public:
   void push(activity::CommImplPtr comm);
   void remove(smx_activity_t activity);
   simgrid::s4u::Mailbox piface_; // Our interface
   void push(activity::CommImplPtr comm);
   void remove(smx_activity_t activity);
   simgrid::s4u::Mailbox piface_; // Our interface
-  std::string name_;
+  char* name_;
 
   simgrid::simix::ActorImplPtr permanent_receiver; // process which the mailbox is attached to
   boost::circular_buffer_space_optimized<smx_activity_t> comm_queue;
 
   simgrid::simix::ActorImplPtr permanent_receiver; // process which the mailbox is attached to
   boost::circular_buffer_space_optimized<smx_activity_t> comm_queue;
index cb5b0a0..245bd53 100644 (file)
@@ -18,7 +18,7 @@ namespace s4u {
 
 const char* Mailbox::getName()
 {
 
 const char* Mailbox::getName()
 {
-  return pimpl_->name_.c_str();
+  return pimpl_->name_;
 }
 
 MailboxPtr Mailbox::byName(const char*name)
 }
 
 MailboxPtr Mailbox::byName(const char*name)