Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Apply "coordinates" config option in surf_config, and not in xbt/config.
[simgrid.git] / src / xbt / config.c
index f5fd93c..4aa81d7 100644 (file)
@@ -18,7 +18,6 @@
 #include "xbt/peer.h"
 
 #include "xbt/config.h"         /* prototypes of this module */
-#include "surf/surf.h"                 /* COORD_HOST_LEVEL and COORD_ASR_LEVEL */
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_cfg, xbt, "configuration support");
 
@@ -651,18 +650,6 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options)
     }
     *(val++) = '\0';
 
-    if (!strcmp(name,"coordinates")){
-       if(!strcmp(val,"yes") && !COORD_HOST_LEVEL){
-               XBT_INFO("Configuration change: Set '%s' to '%s'", name, val);
-                       COORD_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_dynar_free_voidp);
-                       COORD_ASR_LEVEL  = xbt_lib_add_level(as_router_lib,xbt_dynar_free_voidp);
-                       free(optionlist_cpy);
-                       return;
-       }
-       if(strcmp(val,"yes"))
-               xbt_die("Setting CMD prop coordinates must be \"yes\"");
-    }
-
     if (strncmp(name, "contexts/", strlen("contexts/")))
       XBT_INFO("Configuration change: Set '%s' to '%s'", name, val);
 
@@ -670,14 +657,14 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options)
       variable = xbt_dict_get((xbt_dict_t) cfg, name);
     }
     CATCH(e) {
-      /* put it back on what won't get freed, ie within "options" and out of "optionlist_cpy" */
-      name = (char *) (optionlist_cpy - name + options);
-      free(optionlist_cpy);
       if (e.category == not_found_error) {
         xbt_ex_free(e);
+        name = xbt_strdup(name);
+        free(optionlist_cpy);
         THROWF(not_found_error, 0,
                "No registered variable corresponding to '%s'.", name);
       }
+      free(optionlist_cpy);
       RETHROW;
     }