From: Paul Eggert Date: Sat, 14 Sep 2019 17:55:53 +0000 (-0700) Subject: Fix gc-elapsed rounding bug X-Git-Tag: emacs-27.0.90~1551^2~60 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=52172d234015776bcc595c731477b98fa2949e50;p=emacs.git Fix gc-elapsed rounding bug * src/alloc.c (garbage_collect): Don’t accumulate rounding errors when computing gc-elapsed. --- diff --git a/src/alloc.c b/src/alloc.c index 497f600551e..9fbd0d05739 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6021,9 +6021,10 @@ garbage_collect (void) /* Accumulate statistics. */ if (FLOATP (Vgc_elapsed)) { - struct timespec since_start = timespec_sub (current_timespec (), start); - Vgc_elapsed = make_float (XFLOAT_DATA (Vgc_elapsed) - + timespectod (since_start)); + static struct timespec gc_elapsed; + gc_elapsed = timespec_add (gc_elapsed, + timespec_sub (current_timespec (), start)); + Vgc_elapsed = make_float (timespectod (gc_elapsed)); } gcs_done++;