X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a30eb8d63c2291f6b50b935cecf16139b372f9f2..8094e67d625cee857ad58ddec82ae189d005d122:/src/xbt/config.c diff --git a/src/xbt/config.c b/src/xbt/config.c index e10dc0d647..1ab5aec20a 100644 --- a/src/xbt/config.c +++ b/src/xbt/config.c @@ -15,6 +15,7 @@ #include "xbt/ex.h" #include "xbt/dynar.h" #include "xbt/dict.h" +#include "xbt/host.h" #include "xbt/config.h" /* prototypes of this module */ @@ -52,13 +53,6 @@ static xbt_cfgelm_t xbt_cfgelm_get(xbt_cfg_t cfg, const char *name, static void xbt_cfg_str_free(void *d){ free(*(void**)d); } -static void xbt_cfg_host_free(void *d){ - xbt_host_t h=(xbt_host_t) *(void**)d; - if (h) { - if (h->name) free(h->name); - free(h); - } -} /*----[ Memory management ]-----------------------------------------------*/ @@ -215,7 +209,7 @@ xbt_cfg_register(xbt_cfg_t cfg, } CATCH(e) { if (e.category == not_found_error) { found = 1; - xbt_ex_free(&e); + xbt_ex_free(e); } else { RETHROW; } @@ -248,7 +242,7 @@ xbt_cfg_register(xbt_cfg_t cfg, break; case xbt_cfgelm_host: - res->content = xbt_dynar_new(sizeof(xbt_host_t),&xbt_cfg_host_free); + res->content = xbt_dynar_new(sizeof(xbt_host_t),&xbt_host_free_voidp); break; default: @@ -372,7 +366,7 @@ static xbt_cfgelm_t xbt_cfgelm_get(xbt_cfg_t cfg, res = xbt_dict_get((xbt_dict_t)cfg,name); } CATCH(e) { if (e.category == not_found_error) { - xbt_ex_free(&e); + xbt_ex_free(e); THROW1(not_found_error,0, "No registered variable '%s' in this config set",name); } @@ -406,7 +400,7 @@ xbt_cfg_get_type(xbt_cfg_t cfg, const char *name) { variable = xbt_dict_get((xbt_dict_t)cfg,name); } CATCH(e) { if (e.category == not_found_error) { - xbt_ex_free(&e); + xbt_ex_free(e); THROW1(not_found_error,0, "Can't get the type of '%s' since this variable does not exist",name); } @@ -440,7 +434,7 @@ xbt_cfg_set_vargs(xbt_cfg_t cfg, const char *name, va_list pa) { type = xbt_cfg_get_type(cfg,name); } CATCH(e) { if (e.category == not_found_error) { - xbt_ex_free(&e); + xbt_ex_free(e); THROW1(not_found_error,0,"Can't set the property '%s' since it's not registered",name); } RETHROW; @@ -579,7 +573,7 @@ xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options) { name = (char*) (optionlist_cpy-name + options); free(optionlist_cpy); if (e.category == not_found_error) { - xbt_ex_free(&e); + xbt_ex_free(e); THROW1(not_found_error,0,"No registrated variable corresponding to '%s'.",name); } RETHROW; @@ -760,13 +754,10 @@ void xbt_cfg_set_host(xbt_cfg_t cfg,const char*name, const char *host,int port) { xbt_cfgelm_t variable; - xbt_host_t val=xbt_new(s_xbt_host_t,1); + xbt_host_t val=xbt_host_new(host,port); VERB3("Configuration setting: %s=%s:%d",name,host,port); - val->name = xbt_strdup(name); - val->port = port; - variable = xbt_cfgelm_get(cfg,name,xbt_cfgelm_host); if (variable->max == 1) { @@ -951,7 +942,7 @@ xbt_cfg_empty(xbt_cfg_t cfg,const char*name) { if (e.category != not_found_error) RETHROW; - xbt_ex_free(&e); + xbt_ex_free(e); THROW1(not_found_error,0, "Can't empty '%s' since this config element does not exist", name); } @@ -1092,7 +1083,7 @@ xbt_dynar_t xbt_cfg_get_dynar (xbt_cfg_t cfg, const char *name) { variable = xbt_dict_get((xbt_dict_t)cfg,name); } CATCH(e) { if (e.category == not_found_error) { - xbt_ex_free(&e); + xbt_ex_free(e); THROW1(not_found_error,0, "No registered variable %s in this config set",name); } @@ -1178,7 +1169,7 @@ XBT_TEST_UNIT("validation",test_config_validation,"Validation tests") { if (e.category != mismatch_error || strncmp(e.msg,"Config elem speed needs",strlen("Config elem speed needs"))) xbt_test_fail1("Got an exception. msg=%s",e.msg); - xbt_ex_free(&e); + xbt_ex_free(e); } xbt_cfg_free(&set); xbt_cfg_free(&set); @@ -1195,7 +1186,7 @@ XBT_TEST_UNIT("validation",test_config_validation,"Validation tests") { strncmp(e.msg,"Cannot add value 34 to the config elem speed", strlen("Config elem speed needs"))) xbt_test_fail1("Got an exception. msg=%s",e.msg); - xbt_ex_free(&e); + xbt_ex_free(e); } xbt_cfg_check(set); xbt_cfg_free(&set); @@ -1256,7 +1247,7 @@ XBT_TEST_UNIT("use",test_config_use,"Data retrieving tests") { } CATCH(e) { if (e.category != not_found_error) xbt_test_exception(e); - xbt_ex_free(&e); + xbt_ex_free(e); } xbt_cfg_free(&myset); }