From 5e3f84e665d12ca14f92f3d2077dcf6a0c5a5d72 Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Thu, 2 Jun 2016 18:21:57 +0200
Subject: [PATCH] Fix broken const-correctness

---
 include/hpp/manipulation/connected-component.hh |  3 ++-
 src/connected-component.cc                      | 15 +++++++--------
 src/roadmap.cc                                  |  2 +-
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/include/hpp/manipulation/connected-component.hh b/include/hpp/manipulation/connected-component.hh
index 4577c70b..21251ab1 100644
--- a/include/hpp/manipulation/connected-component.hh
+++ b/include/hpp/manipulation/connected-component.hh
@@ -49,12 +49,13 @@ class HPP_MANIPULATION_DLLAPI ConnectedComponent : public core::ConnectedCompone
       /// \param roadmap node to be added
       void addNode (const core::NodePtr_t& node);
 
-      RoadmapNodes_t getRoadmapNodes (const graph::NodePtr_t graphNode);
+      const RoadmapNodes_t& getRoadmapNodes (const graph::NodePtr_t graphNode) const;
      
   protected:
   private:
 	GraphNodes_t graphNodeMap_;
 	RoadmapPtr_t roadmap_;
+        static RoadmapNodes_t empty_;
     }; // class ConnectedComponent
   } //   namespace manipulation
 } // namespace hpp
diff --git a/src/connected-component.cc b/src/connected-component.cc
index 101f2c34..e47917ca 100644
--- a/src/connected-component.cc
+++ b/src/connected-component.cc
@@ -23,6 +23,7 @@
 
 namespace hpp {
   namespace manipulation {
+    RoadmapNodes_t ConnectedComponent::empty_ = RoadmapNodes_t();
 
     ConnectedComponentPtr_t ConnectedComponent::create(const RoadmapWkPtr_t& roadmap)
     {
@@ -74,17 +75,15 @@ namespace hpp {
 
     }
 
-    RoadmapNodes_t ConnectedComponent::getRoadmapNodes (const graph::NodePtr_t graphNode)
+    const RoadmapNodes_t& ConnectedComponent::getRoadmapNodes (
+        const graph::NodePtr_t graphNode) const
     {
-      RoadmapNodes_t res;
-      GraphNodes_t::iterator mapIt = graphNodeMap_.find(graphNode);
-      if (mapIt != graphNodeMap_.end()) {
-        res = mapIt->second;
-      }
-      return res;
+      GraphNodes_t::const_iterator mapIt = graphNodeMap_.find(graphNode);
+      if (mapIt != graphNodeMap_.end())
+        return mapIt->second;
+      return empty_;
     }
 
-
   } // namespace manipulation
 } // namespace hpp
 
diff --git a/src/roadmap.cc b/src/roadmap.cc
index 746733c4..009a7dbd 100644
--- a/src/roadmap.cc
+++ b/src/roadmap.cc
@@ -83,7 +83,7 @@ namespace hpp {
     {
       core::NodePtr_t result = NULL;
       minDistance = std::numeric_limits <value_type>::infinity ();
-      RoadmapNodes_t roadmapNodes = connectedComponent->getRoadmapNodes (node);
+      const RoadmapNodes_t& roadmapNodes = connectedComponent->getRoadmapNodes (node);
       for (RoadmapNodes_t::const_iterator itNode = roadmapNodes.begin ();
           itNode != roadmapNodes.end (); ++itNode) {
         value_type d = (*distance()) (*(*itNode)->configuration (),
-- 
GitLab