Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
attempt to get rid of all const_cast
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 18 May 2017 15:54:41 +0000 (17:54 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 18 May 2017 15:54:41 +0000 (17:54 +0200)
include/xbt/functional.hpp
src/kernel/routing/NetZoneImpl.cpp
src/smpi/smpi_global.cpp

index 7596ef6..2c7c87d 100644 (file)
@@ -43,7 +43,7 @@ public:
     std::vector<std::string> args = *args_;
     std::unique_ptr<char*[]> argv(new char*[argc + 1]);
     for (int i = 0; i != argc; ++i)
-      argv[i] = args[i].empty() ? const_cast<char*>(""): &args[i].front();
+      argv[i] = args[i].empty() ? '\0' : &args[i].front();
     argv[argc] = nullptr;
     code_(argc, argv.get());
   }
index 5a64836..4a2dd54 100644 (file)
@@ -21,8 +21,8 @@ namespace routing {
 class BypassRoute {
 public:
   explicit BypassRoute(NetPoint* gwSrc, NetPoint* gwDst) : gw_src(gwSrc), gw_dst(gwDst) {}
-  const NetPoint* gw_src;
-  const NetPoint* gw_dst;
+  NetPoint* gw_src;
+  NetPoint* gw_dst;
   std::vector<surf::LinkImpl*> links;
 };
 
@@ -292,14 +292,14 @@ bool NetZoneImpl::getBypassRoute(routing::NetPoint* src, routing::NetPoint* dst,
               "calls to getRoute",
               src->cname(), dst->cname(), bypassedRoute->links.size());
     if (src != key.first)
-      getGlobalRoute(src, const_cast<NetPoint*>(bypassedRoute->gw_src), links, latency);
+      getGlobalRoute(src, bypassedRoute->gw_src, links, latency);
     for (surf::LinkImpl* link : bypassedRoute->links) {
       links->push_back(link);
       if (latency)
         *latency += link->latency();
     }
     if (dst != key.second)
-      getGlobalRoute(const_cast<NetPoint*>(bypassedRoute->gw_dst), dst, links, latency);
+      getGlobalRoute(bypassedRoute->gw_dst, dst, links, latency);
     return true;
   }
   XBT_DEBUG("No bypass route from '%s' to '%s'.", src->cname(), dst->cname());
index 161300d..63f2a6c 100644 (file)
@@ -492,7 +492,7 @@ static int smpi_run_entry_point(smpi_entry_point_type entry_point, std::vector<s
   const int argc = args.size();
   std::unique_ptr<char*[]> argv(new char*[argc + 1]);
   for (int i = 0; i != argc; ++i)
-    argv[i] = args[i].empty() ? const_cast<char*>(""): &args[i].front();
+    argv[i] = args[i].empty() ? '\0' : &args[i].front();
   argv[argc] = nullptr;
 
   int res = entry_point(argc, argv.get());