From: Arnaud Giersch Date: Wed, 23 Nov 2011 14:54:14 +0000 (+0100) Subject: Avoid to clear mem for the last element. X-Git-Tag: exp_20120216~241^2~47 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/263e77cbb2185c86c9604558f0cd126873f51676 Avoid to clear mem for the last element. And save a few calls to memset. --- diff --git a/src/xbt/dynar.c b/src/xbt/dynar.c index 85687a2e59..3de29e1230 100644 --- a/src/xbt/dynar.c +++ b/src/xbt/dynar.c @@ -360,8 +360,10 @@ static XBT_INLINE void *_xbt_dynar_set_at_ptr(const xbt_dynar_t dynar, if (idx >= dynar->used) { _xbt_dynar_expand(dynar, idx + 1); - memset(((char * const)dynar->data) + dynar->used * dynar->elmsize, 0, - (idx + 1 - dynar->used)*dynar->elmsize); + if (idx > dynar->used) { + memset(_xbt_dynar_elm(dynar, dynar->used), 0, + (idx - dynar->used) * dynar->elmsize); + } dynar->used = idx + 1; } return _xbt_dynar_elm(dynar, idx);