XBT_DEBUG("pstate: %s", A_surfxml_host_pstate);
host.core_amount = surf_parse_get_int(A_surfxml_host_core);
- host.speed_trace = A_surfxml_host_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_availability___file) : NULL;
- host.state_trace = A_surfxml_host_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_state___file) : NULL;
+ host.speed_trace = A_surfxml_host_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_availability___file) : nullptr;
+ host.state_trace = A_surfxml_host_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_state___file) : nullptr;
host.pstate = surf_parse_get_int(A_surfxml_host_pstate);
host.coord = A_surfxml_host_coordinates;
case A_surfxml_cluster_topology_FAT___TREE:
cluster.topology = SURF_CLUSTER_FAT_TREE;
break;
+ case A_surfxml_cluster_topology_DRAGONFLY:
+ cluster.topology= SURF_CLUSTER_DRAGONFLY ;
+ break;
default:
surf_parse_error("Invalid cluster topology for cluster %s",
cluster.id);
peer.bw_out = surf_parse_get_bandwidth(A_surfxml_peer_bw___out, "bw_out of peer", peer.id);
peer.lat = surf_parse_get_time(A_surfxml_peer_lat, "lat of peer", peer.id);
peer.coord = A_surfxml_peer_coordinates;
- peer.availability_trace = A_surfxml_peer_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_availability___file) : NULL;
- peer.state_trace = A_surfxml_peer_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_state___file) : NULL;
+ peer.availability_trace = A_surfxml_peer_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_availability___file) : nullptr;
+ peer.state_trace = A_surfxml_peer_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_state___file) : nullptr;
sg_platf_new_peer(&peer);
}
link.properties = current_property_set;
link.id = A_surfxml_link_id;
link.bandwidth = surf_parse_get_bandwidth(A_surfxml_link_bandwidth, "bandwidth of link", link.id);
- link.bandwidth_trace = A_surfxml_link_bandwidth___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_bandwidth___file) : NULL;
+ link.bandwidth_trace = A_surfxml_link_bandwidth___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_bandwidth___file) : nullptr;
link.latency = surf_parse_get_time(A_surfxml_link_latency, "latency of link", link.id);
- link.latency_trace = A_surfxml_link_latency___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_latency___file) : NULL;
- link.state_trace = A_surfxml_link_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_state___file):NULL;
+ link.latency_trace = A_surfxml_link_latency___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_latency___file) : nullptr;
+ link.state_trace = A_surfxml_link_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_state___file):nullptr;
switch (A_surfxml_link_sharing___policy) {
case A_surfxml_link_sharing___policy_SHARED:
s_sg_platf_route_cbarg_t route;
memset(&route,0,sizeof(route));
- route.src = A_surfxml_route_src;
- route.dst = A_surfxml_route_dst;
+
+ route.src = sg_netcard_by_name_or_null(A_surfxml_route_src); // tested to not be NULL in start tag
+ route.dst = sg_netcard_by_name_or_null(A_surfxml_route_dst); // tested to not be NULL in start tag
route.gw_src = nullptr;
route.gw_dst = nullptr;
route.link_list = new std::vector<Link*>();
}
sg_platf_new_route(&route);
+ delete route.link_list;
xbt_dynar_free(&parsed_link_list);
}
s_sg_platf_route_cbarg_t ASroute;
memset(&ASroute,0,sizeof(ASroute));
- ASroute.src = A_surfxml_ASroute_src;
- ASroute.dst = A_surfxml_ASroute_dst;
-
- ASroute.gw_src = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___src);
- ASroute.gw_dst = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___dst);
+ ASroute.src = sg_netcard_by_name_or_null(A_surfxml_ASroute_src); // tested to not be NULL in start tag
+ ASroute.dst = sg_netcard_by_name_or_null(A_surfxml_ASroute_dst); // tested to not be NULL in start tag
- if (A_surfxml_ASroute_gw___src && !ASroute.gw_src)
- surf_parse_error("gw_src=\"%s\" not found for ASroute from \"%s\" to \"%s\"",
- A_surfxml_ASroute_gw___src, ASroute.src, ASroute.dst);
- if (A_surfxml_ASroute_gw___dst && !ASroute.gw_dst)
- surf_parse_error("gw_dst=\"%s\" not found for ASroute from \"%s\" to \"%s\"",
- A_surfxml_ASroute_gw___dst, ASroute.src, ASroute.dst);
+ ASroute.gw_src = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___src); // tested to not be NULL in start tag
+ ASroute.gw_dst = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___dst); // tested to not be NULL in start tag
ASroute.link_list = new std::vector<Link*>();
}
sg_platf_new_route(&ASroute);
+ delete ASroute.link_list;
}
void ETag_surfxml_bypassRoute(void){
s_sg_platf_route_cbarg_t route;
memset(&route,0,sizeof(route));
- route.src = A_surfxml_bypassRoute_src;
- route.dst = A_surfxml_bypassRoute_dst;
+ route.src = sg_netcard_by_name_or_null(A_surfxml_bypassRoute_src); // tested to not be NULL in start tag
+ route.dst = sg_netcard_by_name_or_null(A_surfxml_bypassRoute_dst); // tested to not be NULL in start tag
route.gw_src = nullptr;
route.gw_dst = nullptr;
route.symmetrical = false;
s_sg_platf_route_cbarg_t ASroute;
memset(&ASroute,0,sizeof(ASroute));
- ASroute.src = A_surfxml_bypassASroute_src;
- ASroute.dst = A_surfxml_bypassASroute_dst;
- ASroute.link_list = new std::vector<Link*>();
+ ASroute.src = sg_netcard_by_name_or_null(A_surfxml_bypassASroute_src);
+ ASroute.dst = sg_netcard_by_name_or_null(A_surfxml_bypassASroute_dst);
+ ASroute.link_list = new std::vector<Link*>();
unsigned int cpt;
char *link_name;
xbt_dynar_foreach(parsed_link_list, cpt, link_name) {
xbt_dict_foreach(current_property_set, cursor, key, elem) {
cfg = bprintf("%s:%s",key,elem);
if(xbt_cfg_is_default_value(key))
- xbt_cfg_set_parse(simgrid_config, cfg);
+ xbt_cfg_set_parse(cfg);
else
XBT_INFO("The custom configuration '%s' is already defined by user!",key);
free(cfg);
}
sg_platf_new_process(&process);
+
+ for (int i = 0; i != argc; ++i)
+ xbt_free(argv[i]);
+ xbt_free(argv);
+ argv = nullptr;
+
current_property_set = nullptr;
}
void surf_parse_open(const char *file)
{
- xbt_assert(file, "Cannot parse the NULL file. Bypassing the parser is strongly deprecated nowadays.");
+ xbt_assert(file, "Cannot parse the nullptr file. Bypassing the parser is strongly deprecated nowadays.");
if (!surf_input_buffer_stack)
surf_input_buffer_stack = xbt_dynar_new(sizeof(YY_BUFFER_STATE), nullptr);