From 2d2d24d404f9a86c2e669c8aab88c078e2c5a402 Mon Sep 17 00:00:00 2001 From: mquinson Date: Sun, 27 Aug 2006 21:34:15 +0000 Subject: [PATCH 1/1] cleanup a bit the parser code; Do not use attribute content in E[nding]Tag functions, since they are already freed in there with the CVS version of flexml (it may be seen as a bug in flexml, I'm checking with upstream, but I want SimGrid cvs working during the work) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2750 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- tools/gras/stub_generator.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/tools/gras/stub_generator.c b/tools/gras/stub_generator.c index cd81d1fe33..d7cc97230d 100644 --- a/tools/gras/stub_generator.c +++ b/tools/gras/stub_generator.c @@ -103,36 +103,30 @@ static void s_process_free(void *process) free(((s_process_t*)process)->host); } -static int parse_argc = -1 ; -static char **parse_argv = NULL; +static s_process_t process; static void parse_process_init(void) { - parse_argc = 0 ; - parse_argv = NULL; - parse_argc++; - parse_argv = xbt_realloc(parse_argv, (parse_argc) * sizeof(char *)); - parse_argv[(parse_argc) - 1] = xbt_strdup(A_surfxml_process_function); + xbt_dict_set(process_function_set, A_surfxml_process_function, NULL, NULL); + xbt_dict_set(machine_set, A_surfxml_process_host, NULL, NULL); + process.argc = 1 ; + process.argv = xbt_new(char*,1); + process.argv[0] = xbt_strdup(A_surfxml_process_function); + process.host=strdup(A_surfxml_process_host); + VERB1("Function: %s",A_surfxml_process_function); } static void parse_argument(void) { - parse_argc++; - parse_argv = xbt_realloc(parse_argv, (parse_argc) * sizeof(char *)); - parse_argv[(parse_argc) - 1] = xbt_strdup(A_surfxml_argument_value); + process.argc++; + process.argv = xbt_realloc(process.argv, (process.argc) * sizeof(char *)); + process.argv[(process.argc) - 1] = xbt_strdup(A_surfxml_argument_value); } static void parse_process_finalize(void) { - s_process_t process; - void *p = (void *) 1234; - - xbt_dict_set(process_function_set, A_surfxml_process_function, p, NULL); - xbt_dict_set(machine_set, A_surfxml_process_host, p, NULL); - process.argc=parse_argc; - process.argv=parse_argv; - process.host=strdup(A_surfxml_process_host); xbt_dynar_push(process_list,&process); + VERB1("Function: %s",process.argv[0]); } static void generate_sim(char *project) -- 2.20.1