From: quintin Date: Thu, 2 Dec 2010 21:19:52 +0000 (+0000) Subject: [simdag/dotloader] correction of some memory leak X-Git-Tag: v3.6_beta2~984 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/82bdeeeb1a432be6d7ef85292391a697917855cf?hp=b8ce4382ed02101c7522301f2a866bfe164b157e [simdag/dotloader] correction of some memory leak git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8931 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/examples/simdag/dot/dot_test2.c b/examples/simdag/dot/dot_test2.c index 8ea2f5471a..fd52e8f273 100644 --- a/examples/simdag/dot/dot_test2.c +++ b/examples/simdag/dot/dot_test2.c @@ -26,7 +26,7 @@ int main(int argc, char **argv) SD_init(&argc, argv); /* Check our arguments */ - if (argc < 1) { + if (argc < 2) { INFO1("Usage: %s dot_file", argv[0]); exit(1); } diff --git a/src/simdag/sd_dotloader.c b/src/simdag/sd_dotloader.c index 46aa9f55f6..c9c34ce224 100644 --- a/src/simdag/sd_dotloader.c +++ b/src/simdag/sd_dotloader.c @@ -23,7 +23,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files"); void dot_add_task(Agnode_t * dag_node); void dot_add_input_dependencies(SD_task_t current_job, Agedge_t * edge); void dot_add_output_dependencies(SD_task_t current_job, Agedge_t * edge); -xbt_dynar_t SD_dotload_FILE(FILE * in_file); +xbt_dynar_t SD_dotload_generic(const char * filename); static double dot_parse_double(const char *string) { @@ -97,10 +97,7 @@ static void TRACE_sd_dotloader (SD_task_t task, const char *category) */ xbt_dynar_t SD_dotload(const char *filename) { - FILE *in_file = fopen(filename, "r"); - xbt_assert1(in_file, "Unable to open \"%s\"\n", filename); - SD_dotload_FILE(in_file); - fclose(in_file); + SD_dotload_generic(filename); xbt_dynar_t computer = NULL; xbt_dict_cursor_t dict_cursor; char *computer_name; @@ -112,10 +109,7 @@ xbt_dynar_t SD_dotload(const char *filename) } xbt_dynar_t SD_dotload_with_sched(const char *filename){ - FILE *in_file = fopen(filename, "r"); - xbt_assert1(in_file, "Unable to open \"%s\"\n", filename); - SD_dotload_FILE(in_file); - fclose(in_file); + SD_dotload_generic(filename); if(schedule == true){ xbt_dynar_t computer = NULL; @@ -151,10 +145,10 @@ xbt_dynar_t SD_dotload_with_sched(const char *filename){ return NULL; } -xbt_dynar_t SD_dotload_FILE(FILE * in_file) +xbt_dynar_t SD_dotload_generic(const char * filename) { - xbt_assert0(in_file, "Unable to use a null file descriptor\n"); - dag_dot = agread(in_file, NIL(Agdisc_t *)); + xbt_assert0(filename, "Unable to use a null file descriptor\n"); + dag_dot = agopen((char*)filename,Agstrictdirected,0); result = xbt_dynar_new(sizeof(SD_task_t), dot_task_free); files = xbt_dict_new(); @@ -237,6 +231,7 @@ xbt_dynar_t SD_dotload_FILE(FILE * in_file) if(acyclic_graph_detail(result)) return result; acyclic_graph_detail(result); + free(dag_dot); return NULL; }