A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[simdag/dotloader] correction of some memory leak
[simgrid.git]
/
src
/
simdag
/
sd_dotloader.c
diff --git
a/src/simdag/sd_dotloader.c
b/src/simdag/sd_dotloader.c
index
46aa9f5
..
c9c34ce
100644
(file)
--- 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);
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_fil
e);
+xbt_dynar_t SD_dotload_
generic(const char * filenam
e);
static double dot_parse_double(const char *string)
{
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)
{
*/
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;
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){
}
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;
if(schedule == true){
xbt_dynar_t computer = NULL;
@@
-151,10
+145,10
@@
xbt_dynar_t SD_dotload_with_sched(const char *filename){
return NULL;
}
return NULL;
}
-xbt_dynar_t SD_dotload_
FILE(FILE * in_fil
e)
+xbt_dynar_t SD_dotload_
generic(const char * filenam
e)
{
{
- xbt_assert0(
in_fil
e, "Unable to use a null file descriptor\n");
- dag_dot =
agread(in_file, NIL(Agdisc_t *)
);
+ xbt_assert0(
filenam
e, "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();
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);
if(acyclic_graph_detail(result))
return result;
acyclic_graph_detail(result);
+ free(dag_dot);
return NULL;
}
return NULL;
}