Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
plug a memleak
[simgrid.git] / src / surf / xml / surfxml_sax_cb.cpp
index b711427..44f8c1d 100644 (file)
@@ -1,5 +1,4 @@
-  /* Copyright (c) 2006-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2006-2017. 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. */
@@ -1010,8 +1009,9 @@ void surf_parse_open(const char *file)
   xbt_assert(file, "Cannot parse the nullptr file. Bypassing the parser is strongly deprecated nowadays.");
 
   surf_parsed_filename = xbt_strdup(file);
-  char *dir = xbt_dirname(file);
-  xbt_dynar_push(surf_path, &dir);
+  char* dir            = xbt_dirname(file);
+  surf_path.push_back(std::string(dir));
+  xbt_free(dir);
 
   surf_file_to_parse = surf_fopen(file, "r");
   xbt_assert((surf_file_to_parse), "Unable to open \"%s\"\n", file);
@@ -1023,9 +1023,7 @@ void surf_parse_open(const char *file)
 void surf_parse_close()
 {
   if (surf_parsed_filename) {
-    char *dir = nullptr;
-    xbt_dynar_pop(surf_path, &dir);
-    free(dir);
+    surf_path.pop_back();
   }
 
   free(surf_parsed_filename);