From: Arnaud Giersch Date: Tue, 29 Nov 2011 13:38:23 +0000 (+0100) Subject: Avoid the temporary malloc in xbt_dynar_to_array. X-Git-Tag: exp_20120216~241^2~32 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/829dbc9948c913805d4a8ebde293d3c771778aa9 Avoid the temporary malloc in xbt_dynar_to_array. --- diff --git a/src/xbt/dynar.c b/src/xbt/dynar.c index ae75d30cce..d6c70c5ff5 100644 --- a/src/xbt/dynar.c +++ b/src/xbt/dynar.c @@ -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) { - 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; } /*