Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
populate the routing_none_finalize to make sure that we always call these functions
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 10 Nov 2011 21:03:36 +0000 (22:03 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 10 Nov 2011 21:03:36 +0000 (22:03 +0100)
src/surf/surf_routing.c
src/surf/surf_routing_none.c

index 0f6c426..35e71ac 100644 (file)
@@ -315,7 +315,6 @@ void routing_AS_begin(const char *AS_id, const char *wanted_routing_type)
   new_as->model_desc = model;
   new_as->hierarchy = SURF_ROUTING_NULL;
   new_as->name = xbt_strdup(AS_id);
-  new_as->routing_sons = xbt_dict_new();
 
   if (current_routing == NULL && global_routing->root == NULL) {
 
@@ -1222,11 +1221,10 @@ static void finalize_rec(AS_t as) {
   char *key;
   AS_t elem;
 
-  xbt_dict_foreach(as->routing_sons, cursor, key, elem)
-  finalize_rec(elem);
+  xbt_dict_foreach(as->routing_sons, cursor, key, elem) {
+    finalize_rec(elem);
+  }
 
-  xbt_dict_free(&as->routing_sons);
-  xbt_free(as->name);
   as->finalize(as);
 }
 
index a48d9ae..f4d9516 100644 (file)
@@ -8,10 +8,7 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_none, surf, "Routing part of surf");
 
-/* Routing model structure */
-/* Business methods */
-static xbt_dynar_t none_get_onelink_routes(AS_t rc)
-{
+static xbt_dynar_t none_get_onelink_routes(AS_t rc) {
   return NULL;
 }
 
@@ -23,23 +20,16 @@ static route_extended_t none_get_route(AS_t rc,
 
 static route_extended_t none_get_bypass_route(AS_t rc,
                                               const char *src,
-                                              const char *dst)
-{
+                                              const char *dst) {
   return NULL;
 }
 
-void model_none_finalize(AS_t as) {
-  xbt_free(as);
-}
-
-static void none_parse_PU(AS_t rc,
-                                     const char *name)
-{
+static void none_parse_PU(AS_t rc, const char *name) {
+  /* don't care about PUs */
 }
 
-static void none_parse_AS(AS_t rc,
-                                       const char *name)
-{
+static void none_parse_AS(AS_t rc, const char *name) {
+  /* even don't care about sub-ASes */
 }
 
 /* Creation routing model functions */
@@ -57,6 +47,15 @@ AS_t model_none_create_sized(size_t childsize) {
   new_component->get_onelink_routes = none_get_onelink_routes;
   new_component->get_bypass_route = none_get_bypass_route;
   new_component->finalize = model_none_finalize;
+
+  new_component->routing_sons = xbt_dict_new();
+
   return new_component;
 }
 
+void model_none_finalize(AS_t as) {
+  xbt_dict_free(&as->routing_sons);
+  xbt_free(as->name);
+  xbt_free(as);
+}
+