Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Revert "What's not malloced cannot be leaked"
[simgrid.git] / src / surf / xml / surfxml_sax_cb.cpp
index bf7b20e..3d2e6a3 100644 (file)
@@ -728,16 +728,18 @@ void ETag_surfxml_route(void){
   route.dst       = A_surfxml_route_dst;
   route.gw_src    = nullptr;
   route.gw_dst    = nullptr;
+  route.link_list = new std::vector<Link*>();
   route.symmetrical = (A_surfxml_route_symmetrical == A_surfxml_route_symmetrical_YES);
 
   unsigned int cpt;
   char *link_name;
   xbt_dynar_foreach(parsed_link_list, cpt, link_name) {
     simgrid::surf::Link *link = Link::byName(link_name);
-    route.link_list.push_back(link);
+    route.link_list->push_back(link);
   }
 
   sg_platf_new_route(&route);
+  delete route.link_list;
   xbt_dynar_free(&parsed_link_list);
 }
 
@@ -758,12 +760,13 @@ void ETag_surfxml_ASroute(void){
     surf_parse_error("gw_dst=\"%s\" not found for ASroute from \"%s\" to \"%s\"",
                      A_surfxml_ASroute_gw___dst, ASroute.src, ASroute.dst);
 
+  ASroute.link_list =  new std::vector<Link*>();
 
   unsigned int cpt;
   char *link_name;
   xbt_dynar_foreach(parsed_link_list, cpt, link_name) {
     simgrid::surf::Link *link = Link::byName(link_name);
-    ASroute.link_list.push_back(link);
+    ASroute.link_list->push_back(link);
   }
   xbt_dynar_free(&parsed_link_list);
 
@@ -789,12 +792,13 @@ void ETag_surfxml_bypassRoute(void){
   route.gw_src = nullptr;
   route.gw_dst = nullptr;
   route.symmetrical = false;
+  route.link_list =  new std::vector<Link*>();
 
   unsigned int cpt;
   char *link_name;
   xbt_dynar_foreach(parsed_link_list, cpt, link_name) {
     simgrid::surf::Link *link = Link::byName(link_name);
-    route.link_list.push_back(link);
+    route.link_list->push_back(link);
   }
   xbt_dynar_free(&parsed_link_list);
 
@@ -807,11 +811,12 @@ void ETag_surfxml_bypassASroute(void){
 
   ASroute.src         = A_surfxml_bypassASroute_src;
   ASroute.dst         = A_surfxml_bypassASroute_dst;
+  ASroute.link_list   =  new std::vector<Link*>();
   unsigned int cpt;
   char *link_name;
   xbt_dynar_foreach(parsed_link_list, cpt, link_name) {
     simgrid::surf::Link *link = Link::byName(link_name);
-    ASroute.link_list.push_back(link);
+    ASroute.link_list->push_back(link);
   }
   xbt_dynar_free(&parsed_link_list);
   ASroute.symmetrical = false;