X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/347996b4a10c4e8579080692afa60e0afb88b60a..a5945452ef5b1114fd7c2fab0e865d776775c34d:/src/simdag/sd_dotloader.cpp diff --git a/src/simdag/sd_dotloader.cpp b/src/simdag/sd_dotloader.cpp index 25fdbae1c5..759b2b5970 100644 --- a/src/simdag/sd_dotloader.cpp +++ b/src/simdag/sd_dotloader.cpp @@ -4,23 +4,16 @@ /* 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 "src/internal_config.h" #include "src/simdag/simdag_private.h" #include "simgrid/simdag.h" -#include "xbt/log.h" -#include +#include "xbt/file.h" #include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files"); -#undef CLEANUP - -#ifdef HAVE_CGRAPH_H +#if HAVE_GRAPHVIZ #include -#elif HAVE_AGRAPH_H -#include -#define agnxtnode(dot, node) agnxtnode(node) -#define agfstout(dot, node) agfstout(node) -#define agnxtout(dot, edge) agnxtout(edge) #endif typedef enum { @@ -30,7 +23,6 @@ typedef enum { xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par, bool schedule); - static void dot_task_p_free(void *task) { SD_task_destroy(*(SD_task_t *)task); } @@ -175,8 +167,9 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par, bool dst = (SD_task_t)xbt_dict_get_or_null(jobs, dst_name); if (size > 0) { - char *name = (char*)xbt_malloc((strlen(src_name)+strlen(dst_name)+6)*sizeof(char)); - sprintf(name, "%s->%s", src_name, dst_name); + int namesize=(strlen(src_name)+strlen(dst_name)+6); + char *name = (char*)xbt_malloc(namesize*sizeof(char*)); + snprintf(name,namesize, "%s->%s", src_name, dst_name); XBT_DEBUG("See ", name, size); if (!(task = (SD_task_t)xbt_dict_get_or_null(jobs, name))) { if (seq_or_par == sequential) @@ -248,7 +241,9 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par, bool } if (result && !acyclic_graph_detail(result)) { - XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", basename((char*)filename)); + char* base = xbt_basename(filename); + XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", base); + free(base); xbt_dynar_free(&result); result = NULL; }