]> AND Public Git Repository - simgrid.git/blobdiff - src/xbt/dict.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix infinite recursion.
[simgrid.git] / src / xbt / dict.cpp
index 59f4865f3e4956d3400759796bde5828d8bba168..6573bb88ed94be8e9eeabc81e8171caaae9d0b83 100644 (file)
@@ -15,6 +15,7 @@
 #include "xbt/string.hpp"
 #include "xbt/xbt_modinter.h"
 
+#include <algorithm>
 #include <cstdio>
 #include <cstring>
 
@@ -89,8 +90,8 @@ static void xbt_dict_rehash(xbt_dict_t dict)
   const unsigned oldsize = dict->table_size + 1;
   unsigned newsize = oldsize * 2;
 
-  auto* newtable = static_cast<xbt_dictelm_t*>(xbt_realloc((char*)dict->table, newsize * sizeof(xbt_dictelm_t)));
-  memset(&newtable[oldsize], 0, oldsize * sizeof(xbt_dictelm_t)); /* zero second half */
+  auto* newtable = static_cast<xbt_dictelm_t*>(xbt_realloc(dict->table, newsize * sizeof(xbt_dictelm_t)));
+  std::fill(newtable + oldsize, newtable + newsize, nullptr); /* zero second half */
   newsize--;
   dict->table_size = newsize;
   dict->table      = newtable;