From: Paul Eggert Date: Tue, 6 Oct 2015 20:33:50 +0000 (-0700) Subject: Fix bug in GC_CHECK_MARKED_OBJECTS check X-Git-Tag: emacs-25.0.90~1213 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3b4d119c40817a528be5ad2bb994521a947dc443;p=emacs.git Fix bug in GC_CHECK_MARKED_OBJECTS check * src/alloc.c (mark_object): Fix bug in checking code. When GC_CHECK_MARKED_OBJECTS is defined, the bug caused CHECK_ALLOCATED_AND_LIVE_SYMBOL to repeatedly do the CHECK_ALLOCATED and CHECK_LIVE tests for the first symbol in each bucket. The bug did not affect behavior either in the normal case where GC_CHECK_MARKED_OBJECTS is not defined, or where Emacs does not have an internal error that a properly-written CHECK_ALLOCATED_AND_LIVE_SYMBOL would detect. --- diff --git a/src/alloc.c b/src/alloc.c index 3ab2a6e3843..5fc40d13b8d 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6217,7 +6217,7 @@ mark_object (Lisp_Object arg) MARK_STRING (XSTRING (ptr->name)); MARK_INTERVAL_TREE (string_intervals (ptr->name)); /* Inner loop to mark next symbol in this bucket, if any. */ - ptr = ptr->next; + po = ptr = ptr->next; if (ptr) goto nextsym; }