Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill an unused static global
[simgrid.git] / src / surf / AsFull.cpp
index 07c5851..c2b4ca5 100644 (file)
@@ -34,9 +34,10 @@ void AsFull::seal() {
       e_route = TO_ROUTE_FULL(i, i);
       if (!e_route) {
         e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
-        e_route->gw_src = NULL;
-        e_route->gw_dst = NULL;
-        e_route->link_list.push_back(routing_platf->loopback_);
+        e_route->gw_src = nullptr;
+        e_route->gw_dst = nullptr;
+        e_route->link_list = new std::vector<Link*>();
+        e_route->link_list->push_back(routing_platf->loopback_);
         TO_ROUTE_FULL(i, i) = e_route;
       }
     }
@@ -46,11 +47,15 @@ void AsFull::seal() {
 AsFull::~AsFull(){
   if (routingTable_) {
     int table_size = (int)xbt_dynar_length(vertices_);
+    int i, j;
     /* Delete routing table */
-    for (int i = 0; i < table_size; i++)
-      for (int j = 0; j < table_size; j++)
-        if (TO_ROUTE_FULL(i,j))
+    for (i = 0; i < table_size; i++)
+      for (j = 0; j < table_size; j++) {
+        if (TO_ROUTE_FULL(i,j)){
+          delete TO_ROUTE_FULL(i,j)->link_list;
           xbt_free(TO_ROUTE_FULL(i,j));
+        }
+      }
     xbt_free(routingTable_);
   }
 }
@@ -63,15 +68,15 @@ void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg
   /* set utils vars */
   size_t table_size = xbt_dynar_length(vertices_);
 
-  sg_platf_route_cbarg_t e_route = NULL;
+  sg_platf_route_cbarg_t e_route = nullptr;
 
   e_route = TO_ROUTE_FULL(src->id(), dst->id());
 
   if (e_route) {
     res->gw_src = e_route->gw_src;
     res->gw_dst = e_route->gw_dst;
-    for (auto link : e_route->link_list) {
-      res->link_list.push_back(link);
+    for (auto link : *e_route->link_list) {
+      res->link_list->push_back(link);
       if (lat)
         *lat += static_cast<Link*>(link)->getLatency();
     }
@@ -80,10 +85,10 @@ void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg
 
 void AsFull::addRoute(sg_platf_route_cbarg_t route)
 {
-  const char *src = route->src;
-  const char *dst = route->dst;
-  NetCard *src_net_elm = sg_netcard_by_name_or_null(src);
-  NetCard *dst_net_elm = sg_netcard_by_name_or_null(dst);
+  NetCard *src_net_elm = route->src;
+  NetCard *dst_net_elm = route->dst;
+  const char *src = src_net_elm->name();
+  const char *dst = dst_net_elm->name();
 
   addRouteCheckParams(route);
 
@@ -103,7 +108,7 @@ void AsFull::addRoute(sg_platf_route_cbarg_t route)
 
   /* Add the route to the base */
   TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()) = newExtendedRoute(hierarchy_, route, 1);
-  TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id())->link_list.shrink_to_fit();
+  TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id())->link_list->shrink_to_fit();
 
   if (route->symmetrical == true && src_net_elm != dst_net_elm) {
     if (route->gw_dst && route->gw_src) {
@@ -120,7 +125,7 @@ void AsFull::addRoute(sg_platf_route_cbarg_t route)
           "The route between %s and %s already exists. You should not declare the reverse path as symmetrical.", dst,src);
 
     TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id()) = newExtendedRoute(hierarchy_, route, 0);
-    TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list.shrink_to_fit();
+    TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list->shrink_to_fit();
   }
 }