X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/73049fc3c9c1159f15d39ff550712a8c9a8f6ebb..c97cae03adbd2e3159e5e909b050183dbcf49d60:/src/surf/xml/surfxml_sax_cb.cpp diff --git a/src/surf/xml/surfxml_sax_cb.cpp b/src/surf/xml/surfxml_sax_cb.cpp index b7114274f7..43f712cf97 100644 --- a/src/surf/xml/surfxml_sax_cb.cpp +++ b/src/surf/xml/surfxml_sax_cb.cpp @@ -1,5 +1,4 @@ - /* Copyright (c) 2006-2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -297,7 +296,7 @@ static std::vector surf_parse_get_all_speeds(char* speeds, const char* e /* The default current property receiver. Setup in the corresponding opening callbacks. */ xbt_dict_t current_property_set = nullptr; -xbt_dict_t current_model_property_set = nullptr; +std::map* current_model_property_set = nullptr; int AS_TAG = 0; // Whether we just opened an AS tag (to see what to do with the properties) /* dictionary of random generator data */ @@ -485,7 +484,7 @@ void STag_surfxml_prop() XBT_DEBUG("Set AS property %s -> %s", A_surfxml_prop_id, A_surfxml_prop_value); simgrid::s4u::NetZone* netzone = simgrid::s4u::Engine::instance()->netzoneByNameOrNull(A_surfxml_AS_id); - netzone->setProperty(A_surfxml_prop_id, xbt_strdup(A_surfxml_prop_value)); + netzone->setProperty(A_surfxml_prop_id, A_surfxml_prop_value); } else{ if (!current_property_set) @@ -985,9 +984,10 @@ void STag_surfxml_argument(){ void STag_surfxml_model___prop(){ if (!current_model_property_set) - current_model_property_set = xbt_dict_new_homogeneous(xbt_free_f); + current_model_property_set = new std::map(); - xbt_dict_set(current_model_property_set, A_surfxml_model___prop_id, xbt_strdup(A_surfxml_model___prop_value), nullptr); + current_model_property_set->insert( + {std::string(A_surfxml_model___prop_id), std::string(A_surfxml_model___prop_value)}); } void ETag_surfxml_prop(){/* Nothing to do */} @@ -1010,8 +1010,9 @@ void surf_parse_open(const char *file) xbt_assert(file, "Cannot parse the nullptr file. Bypassing the parser is strongly deprecated nowadays."); surf_parsed_filename = xbt_strdup(file); - char *dir = xbt_dirname(file); - xbt_dynar_push(surf_path, &dir); + char* dir = xbt_dirname(file); + surf_path.push_back(std::string(dir)); + xbt_free(dir); surf_file_to_parse = surf_fopen(file, "r"); xbt_assert((surf_file_to_parse), "Unable to open \"%s\"\n", file); @@ -1023,9 +1024,7 @@ void surf_parse_open(const char *file) void surf_parse_close() { if (surf_parsed_filename) { - char *dir = nullptr; - xbt_dynar_pop(surf_path, &dir); - free(dir); + surf_path.pop_back(); } free(surf_parsed_filename);