]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix garbage collection
authorEli Zaretskii <eliz@gnu.org>
Sun, 11 Aug 2019 16:23:23 +0000 (19:23 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 11 Aug 2019 16:23:23 +0000 (19:23 +0300)
* src/alloc.c (free_cons): Avoid false positives in
INT_ADD_WRAPV.  (Bug#37006)

src/alloc.c

index 5e089311a273788c3012834f69f2df0c6e41c206..d9022ac46c3a6233aa88e3419cf3719295d6f975 100644 (file)
@@ -2542,7 +2542,9 @@ free_cons (struct Lisp_Cons *ptr)
   ptr->u.s.u.chain = cons_free_list;
   ptr->u.s.car = dead_object ();
   cons_free_list = ptr;
-  if (INT_ADD_WRAPV (consing_until_gc, sizeof *ptr, &consing_until_gc))
+  if (consing_until_gc <= 0)
+    consing_until_gc += sizeof *ptr;
+  else if (INT_ADD_WRAPV (consing_until_gc, sizeof *ptr, &consing_until_gc))
     consing_until_gc = OBJECT_CT_MAX;
   gcstat.total_free_conses++;
 }