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()
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");
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);
}
/* 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]) {
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) {
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);
}
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);
}