Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mem leak --
[simgrid.git] / src / simdag / sd_dotloader.c
index f4bfee3..6bb01be 100644 (file)
@@ -326,6 +326,7 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
         } else {
           XBT_WARN("Task '%s' is defined more than once", name);
         }
+        xbt_free(name);
       } else {
         SD_task_dependency_add(NULL, NULL, src, dst);
       }
@@ -358,5 +359,11 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
   agclose(dag_dot);
   xbt_dict_free(&jobs);
 
+  if (!acyclic_graph_detail(result)) {
+    XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.",
+              basename((char*)filename));
+    xbt_dynar_free(&result);
+    /* (result == NULL) here */
+  }
   return result;
 }