Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Check for memleack and fix some compilation error with full flags.
authornavarro <navarro@caraja.(none)>
Fri, 16 Mar 2012 15:53:23 +0000 (16:53 +0100)
committernavarro <navarro@caraja.(none)>
Fri, 16 Mar 2012 15:53:23 +0000 (16:53 +0100)
src/surf/cpu_cas01.c
src/surf/surf.c
src/surf/surf_routing_dijkstra.c
src/surf/surf_routing_generic.c
src/surf/surf_routing_none.c
src/surf/surf_routing_vivaldi.c

index 9998f86..c4f62db 100644 (file)
@@ -631,6 +631,7 @@ static void cpu_finalize(void)
   cpu_running_action_set_that_does_not_need_being_checked = NULL;
   if (cpu_action_heap)
     xbt_heap_free(cpu_action_heap);
+  xbt_swag_free(cpu_modified_set);
 }
 
 static void surf_cpu_model_init_internal()
index b80d1fd..5618234 100644 (file)
@@ -305,6 +305,13 @@ XBT_LOG_EXTERNAL_CATEGORY(surf_route);
 XBT_LOG_EXTERNAL_CATEGORY(surf_network_gtnets);
 #endif
 
+static XBT_INLINE void routing_asr_host_free(void *p)
+{
+  network_element_t elm = (network_element_t)p;
+  free(elm->name);
+  xbt_free(elm);
+}
+
 void surf_init(int *argc, char **argv)
 {
   XBT_DEBUG("Create all Libs");
@@ -315,8 +322,8 @@ void surf_init(int *argc, char **argv)
   storage_type_lib = xbt_lib_new();
 
   XBT_DEBUG("ADD ROUTING LEVEL");
-  ROUTING_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_free);
-  ROUTING_ASR_LEVEL  = xbt_lib_add_level(as_router_lib,xbt_free);
+  ROUTING_HOST_LEVEL = xbt_lib_add_level(host_lib,routing_asr_host_free);
+  ROUTING_ASR_LEVEL  = xbt_lib_add_level(as_router_lib,routing_asr_host_free);
   ROUTING_STORAGE_LEVEL = xbt_lib_add_level(storage_lib,xbt_free);
   ROUTING_STORAGE_HOST_LEVEL = xbt_lib_add_level(storage_lib,routing_storage_host_free);
   ROUTING_STORAGE_TYPE_LEVEL = xbt_lib_add_level(storage_type_lib,routing_storage_type_free);
index 764e845..1c403c7 100644 (file)
@@ -332,7 +332,7 @@ static void dijkstra_get_route_and_latency(AS_t asg,
   }
 
   /* compose route path with links */
-  network_element_t gw_src, gw_dst, prev_gw_src, first_gw;
+  network_element_t gw_src = NULL, gw_dst, prev_gw_src, first_gw = NULL;
   network_element_t gw_dst_net_elm = NULL, prev_gw_src_net_elm = NULL;
 
   for (v = dst_node_id; v != src_node_id; v = pred_arr[v]) {
index f89383f..4301a34 100644 (file)
@@ -31,7 +31,6 @@ AS_t model_generic_create_sized(size_t childsize) {
   new_component->finalize = model_generic_finalize;
   new_component->bypassRoutes = xbt_dict_new_homogeneous((void (*)(void *)) generic_free_route);
 
-  new_component->index_network_elm = xbt_dynar_new(sizeof(char*),NULL);
   return new_component;
 }
 void model_generic_finalize(AS_t as) {
index e4e187c..726a873 100644 (file)
@@ -50,15 +50,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_homogeneous(NULL);
   new_component->index_network_elm = xbt_dynar_new(sizeof(char*),NULL);
+
   return new_component;
 }
 
 void model_none_finalize(AS_t as) {
   xbt_dict_free(&as->routing_sons);
-  xbt_free(as->name);
+  xbt_dynar_free(&as->index_network_elm);
   xbt_free(as);
 }
 
index a460041..97c122d 100644 (file)
@@ -24,7 +24,7 @@ static void vivaldi_get_route_and_latency(
   char *src = (char*)src_p->name;
   char *dst = (char*)dst_p->name;
 
-  if(routing_get_network_element_type(src) == SURF_NETWORK_ELEMENT_AS) {
+  if(src_p->rc_type == SURF_NETWORK_ELEMENT_AS) {
     route->src_gateway = xbt_lib_get_or_null(as_router_lib,ROUTER_PEER(src),ROUTING_ASR_LEVEL);
     route->dst_gateway = xbt_lib_get_or_null(as_router_lib,ROUTER_PEER(dst),ROUTING_ASR_LEVEL);
   }