From 263e77cbb2185c86c9604558f0cd126873f51676 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 23 Nov 2011 15:54:14 +0100 Subject: [PATCH] Avoid to clear mem for the last element. And save a few calls to memset. --- src/xbt/dynar.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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); -- 2.20.1