Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Finally kill the memleak in the route parsing (I hope).
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 16 Jun 2008 21:05:34 +0000 (21:05 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 16 Jun 2008 21:05:34 +0000 (21:05 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5623 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/surf/surfxml_parse.c

index d8874a5..ef19563 100644 (file)
@@ -506,7 +506,7 @@ static XBT_INLINE void surfxml_call_cb_functions(xbt_dynar_t cb_list)
 }
 
 static void parse_route_set_endpoints(void) {
 }
 
 static void parse_route_set_endpoints(void) {
-  route_link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
+  route_link_list = xbt_dynar_new(sizeof(char *), NULL);
 }
 
 static void init_data(void)
 }
 
 static void init_data(void)
@@ -832,6 +832,7 @@ void manage_route(xbt_dict_t routing_table, const char *route_name, int action,
                                    xbt_dynar_foreach(links, cpt, value) {      
                                        xbt_dynar_push(route_link_list,&value);
                                    }
                                    xbt_dynar_foreach(links, cpt, value) {      
                                        xbt_dynar_push(route_link_list,&value);
                                    }
+                                   xbt_dynar_free(&links);
                                     break;
         case A_surfxml_route_action_POSTPEND: /* add existing links in front; links + route_link_list */ 
                                    xbt_dynar_foreach(route_link_list, cpt, value) {
                                     break;
         case A_surfxml_route_action_POSTPEND: /* add existing links in front; links + route_link_list */ 
                                    xbt_dynar_foreach(route_link_list, cpt, value) {
@@ -841,6 +842,7 @@ void manage_route(xbt_dict_t routing_table, const char *route_name, int action,
                                     route_link_list = links;
                                    break;
         case A_surfxml_route_action_OVERRIDE:
                                     route_link_list = links;
                                    break;
         case A_surfxml_route_action_OVERRIDE:
+                                   xbt_dynar_free(&links);
                                     break;
         default:break;
      }
                                     break;
         default:break;
      }