return new_e_route;
}
+static void model_cluster_finalize(AS_t as) {
+ xbt_dict_free(&cluster_host_link);
+ model_none_finalize(as);
+}
/* Creation routing model functions */
AS_t model_cluster_create(void)
{
AS_t result = model_none_create();
result->get_route = cluster_get_route;
+ result->finalize = model_cluster_finalize;
return (AS_t) result;
}
{
as_dijkstra_t as = (as_dijkstra_t) asg;
- if (as) {
- xbt_graph_free_graph(as->route_graph, &xbt_free,
- &graph_edge_data_free, &xbt_free);
- xbt_dict_free(&as->graph_node_map);
- if (as->cached)
- xbt_dict_free(&as->route_cache);
- /* Delete bypass dict */
- xbt_dict_free(&as->generic_routing.bypassRoutes);
- /* Delete index dict */
- xbt_dict_free(&(as->generic_routing.to_index));
- /* Delete structure */
- xbt_free(as);
- }
+ xbt_graph_free_graph(as->route_graph, &xbt_free,
+ &graph_edge_data_free, &xbt_free);
+ xbt_dict_free(&as->graph_node_map);
+ if (as->cached)
+ xbt_dict_free(&as->route_cache);
+
+ model_generic_finalize(asg);
}
/* Creation routing model functions */
for (j = 0; j < table_size; j++)
generic_free_extended_route(TO_ROUTE_FULL(i, j));
xbt_free(routing->routing_table);
- /* Delete bypass dict */
- xbt_dict_free(&rc->bypassRoutes);
- /* Delete index dict */
- xbt_dict_free(&rc->to_index);
- /* Delete structure */
- xbt_free(rc);
+ model_generic_finalize(rc);
}
}
new_component->get_onelink_routes = NULL;
new_component->get_bypass_route =
generic_get_bypassroute;
- new_component->finalize = model_none_finalize;
+ new_component->finalize = model_generic_finalize;
+
new_component->to_index = xbt_dict_new();
new_component->bypassRoutes = xbt_dict_new();
return new_component;
}
-
+void model_generic_finalize(AS_t as) {
+ xbt_dict_free(&as->to_index);
+ xbt_dict_free(&as->bypassRoutes);
+ model_none_finalize(as);
+}
void generic_parse_PU(AS_t as, const char *name)
{
/* ************************************************************************** */
/* ***************** GENERIC PARSE FUNCTIONS (declarations) ***************** */
AS_t model_generic_create_sized(size_t childsize);
+void model_generic_finalize(AS_t as);
void generic_parse_PU(AS_t rc, const char *name);
void generic_parse_AS(AS_t rc, const char *name);