Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Avoid the temporary malloc in xbt_dynar_to_array.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 29 Nov 2011 13:38:23 +0000 (14:38 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 29 Nov 2011 13:40:41 +0000 (14:40 +0100)
src/xbt/dynar.c

index ae75d30..d6c70c5 100644 (file)
@@ -704,13 +704,12 @@ XBT_INLINE void xbt_dynar_sort(xbt_dynar_t dynar,
  */
 XBT_INLINE void * xbt_dynar_to_array (xbt_dynar_t dynar)
 {
  */
 XBT_INLINE void * xbt_dynar_to_array (xbt_dynar_t dynar)
 {
-  void * res;
-       void * last = xbt_new0(char,dynar->elmsize);
-       xbt_dynar_push(dynar, last);
-       free(last);
-       res = dynar->data;
-       free(dynar);
-       return res;
+  void *res;
+  xbt_dynar_shrink(dynar, 1);
+  memset(xbt_dynar_push_ptr(dynar), 0, dynar->elmsize);
+  res = dynar->data;
+  free(dynar);
+  return res;
 }
 
 /*
 }
 
 /*