]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix gc-elapsed rounding bug
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 14 Sep 2019 17:55:53 +0000 (10:55 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 14 Sep 2019 17:56:12 +0000 (10:56 -0700)
* src/alloc.c (garbage_collect): Don’t accumulate rounding
errors when computing gc-elapsed.

src/alloc.c

index 497f600551ef9af52eeb713182ffa88c15e7ca6e..9fbd0d057393f9ca04623fab3f4791998dc07b43 100644 (file)
@@ -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++;