Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Let's be brutal since we fail to understand the problem: time to get some food&sleep
authorquasar <quasar@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 26 Oct 2007 18:52:39 +0000 (18:52 +0000)
committerquasar <quasar@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 26 Oct 2007 18:52:39 +0000 (18:52 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4885 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/surf/surfxml_parse.c
tools/gras/stub_generator.c

index 53dd960..fa7e681 100644 (file)
@@ -295,8 +295,9 @@ void surfxml_add_callback(xbt_dynar_t cb_list, void_f_void_t function)
 void surfxml_call_cb_functions(xbt_dynar_t cb_list)
 {
   int iterator;
-  void_f_void_t data;
-  xbt_dynar_foreach(cb_list, iterator, data){
-       (*data)();
+  void_f_void_t fun;
+  xbt_dynar_foreach(cb_list, iterator, fun){
+       DEBUG2("call %p %p",fun,*fun);
+       (*fun)();
     }
 }
index f7c10ae..fbba2ff 100644 (file)
@@ -81,6 +81,11 @@ static void parse_process_finalize(void)
   /*VERB1("Function: %s",process.argv[0]);*/
 }
 
+void surfxml_add_callback(xbt_dynar_t cb_list, void_f_void_t function)
+{
+   xbt_dynar_push(cb_list, &function);
+}
+
 
 int main(int argc, char *argv[])
 {
@@ -116,9 +121,11 @@ int main(int argc, char *argv[])
 
   project_name = argv[1];
 
-  STag_surfxml_process_fun = parse_process_init;
-  ETag_surfxml_argument_fun = parse_argument;
-  ETag_surfxml_process_fun = parse_process_finalize;
+  surf_parse_reset_parser();
+  DEBUG2("%p %p",parse_process_init,&parse_process_init);
+  surfxml_add_callback(STag_surfxml_process_cb_list, &parse_process_init);
+  surfxml_add_callback(ETag_surfxml_argument_cb_list, &parse_argument);
+  surfxml_add_callback(ETag_surfxml_process_cb_list, &parse_process_finalize);
   
   for(i=2; i<argc; i++) {
      deployment_file = argv[i];