From e8a844b3c571a105ab30d6d4b0abff78ba6974ea Mon Sep 17 00:00:00 2001 From: Francois Keith <keith@lirmm.fr> Date: Wed, 19 Mar 2014 23:28:15 +0100 Subject: [PATCH] Correct signal destruction in rosSubscription. --- src/ros_subscribe.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ros_subscribe.cpp b/src/ros_subscribe.cpp index 3679159..4c1f02c 100644 --- a/src/ros_subscribe.cpp +++ b/src/ros_subscribe.cpp @@ -183,7 +183,16 @@ namespace dynamicgraph void RosSubscribe::rm (const std::string& signal) { + std::string signalTs = signal+"Timestamp"; + + signalDeregistration(signal); bindedSignal_.erase (signal); + + if(bindedSignal_.find(signalTs) != bindedSignal_.end()) + { + signalDeregistration(signalTs); + bindedSignal_.erase(signalTs); + } } std::string RosSubscribe::list () @@ -199,7 +208,12 @@ namespace dynamicgraph void RosSubscribe::clear () { - bindedSignal_.clear (); + std::map<std::string, bindedSignal_t>::iterator it = bindedSignal_.begin(); + for(; it!= bindedSignal_.end(); ) + { + rm(it->first); + it = bindedSignal_.begin(); + } } std::string RosSubscribe::getDocString () const -- GitLab