X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4567958b25228037afc35b3116064a42a5b9e322..9b73466ada27682d1729f394549479da83ef4a99:/src/xbt/xbt_replay.c diff --git a/src/xbt/xbt_replay.c b/src/xbt/xbt_replay.c index c0dbca1b66..f539ed1426 100644 --- a/src/xbt/xbt_replay.c +++ b/src/xbt/xbt_replay.c @@ -1,9 +1,8 @@ -/* Copyright (c) 2010. The SimGrid Team. +/* Copyright (c) 2010, 2012-2013. 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. */ -#include "simgrid_config.h" //For getline, keep that include first #include "internal_config.h" #include @@ -30,7 +29,7 @@ xbt_dict_t action_queues; static char *action_line = NULL; static size_t action_len = 0; -static const char **action_get_action(char *name); +static char **action_get_action(char *name); xbt_replay_reader_t xbt_replay_reader_new(const char *filename) { @@ -53,7 +52,7 @@ const char **xbt_replay_reader_get(xbt_replay_reader_t reader) { ssize_t read; xbt_dynar_t d; - read = getline(&reader->line, &reader->line_len, reader->fp); + read = xbt_getline(&reader->line, &reader->line_len, reader->fp); //XBT_INFO("got from trace: %s",reader->line); reader->linenum++; if (read==-1) @@ -132,19 +131,19 @@ void _xbt_replay_action_exit(void) */ int xbt_replay_action_runner(int argc, char *argv[]) { - const char **evt; int i; if (action_fp) { // A unique trace file - + char **evt; while ((evt = action_get_action(argv[0]))) { action_fun function = (action_fun)xbt_dict_get(action_funs, evt[1]); - function(evt); + function((const char **)evt); for (i=0;evt[i]!= NULL;i++) - free((char*)evt[i]); + free(evt[i]); free(evt); } } else { // Should have got my trace file in argument + const char **evt; xbt_assert(argc >= 2, "No '%s' agent function provided, no simulation-wide trace file provided, " "and no process-wide trace file provided in deployment file. Aborting.", @@ -153,16 +152,13 @@ int xbt_replay_action_runner(int argc, char *argv[]) xbt_replay_reader_t reader = xbt_replay_reader_new(argv[1]); while ((evt=xbt_replay_reader_get(reader))) { if (!strcmp(argv[0],evt[0])) { - action_fun function = - (action_fun)xbt_dict_get(action_funs, evt[1]); + action_fun function = (action_fun)xbt_dict_get(action_funs, evt[1]); function(evt); - for (i=0;evt[i]!= NULL;i++) - free((char*)evt[i]); - free(evt); } else { XBT_WARN("%s: Ignore trace element not for me", xbt_replay_reader_position(reader)); } + free(evt); } xbt_replay_reader_free(&reader); } @@ -170,7 +166,7 @@ int xbt_replay_action_runner(int argc, char *argv[]) } -static const char **action_get_action(char *name) +static char **action_get_action(char *name) { xbt_dynar_t evt = NULL; char *evtname = NULL; @@ -183,7 +179,7 @@ static const char **action_get_action(char *name) } // Read lines until I reach something for me (which breaks in loop body) // or end of file reached - while (getline(&action_line, &action_len, action_fp) != -1) { + while (xbt_getline(&action_line, &action_len, action_fp) != -1) { // cleanup and split the string I just read char *comment = strchr(action_line, '#'); if (comment != NULL)