]> git.eshelyaron.com Git - emacs.git/commitdiff
Revert "Revert "Fix infloop in GC mark_kboards""
authorEli Zaretskii <eliz@gnu.org>
Sun, 2 Dec 2018 18:04:05 +0000 (20:04 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sun, 2 Dec 2018 18:04:05 +0000 (20:04 +0200)
This reverts commit c418c85617babbe7b63730fefb71e2c87a0141af.
This reinstates the original fix, as it had nothing to do
with the behavior reported in bug#33571, which seems to be
the expected behavior.

src/keyboard.c

index 0d56ea3f7ac911658d2fed1029acd90d79e7b650..dccc6b7f128e79f9c888594dd9d7c28ac411df53 100644 (file)
@@ -12011,7 +12011,12 @@ mark_kboards (void)
     for (event = kbd_fetch_ptr; event != kbd_store_ptr; event++)
       {
        if (event == kbd_buffer + KBD_BUFFER_SIZE)
-         event = kbd_buffer;
+         {
+           event = kbd_buffer;
+           if (event == kbd_store_ptr)
+             break;
+         }
+
        /* These two special event types has no Lisp_Objects to mark.  */
        if (event->kind != SELECTION_REQUEST_EVENT
            && event->kind != SELECTION_CLEAR_EVENT)