summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-12-01 13:40:13 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2018-12-01 13:42:57 -0800
commitaf914fc26db273d8788e7efa57c569f0f778d037 (patch)
treeaefabbcb75779fba2437d41cdc9811acee4c1445 /src
parent317b3547820bf2468c1c0e9b5bed1bde94aeb544 (diff)
downloademacs-af914fc26db273d8788e7efa57c569f0f778d037.tar.gz
Fix infloop in GC mark_kboards
Do not merge to master, as I have a more systematic fix there. * src/keyboard.c (mark_kboards): Fix infloop (Bug#33547).
Diffstat (limited to 'src')
-rw-r--r--src/keyboard.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 0d56ea3f7ac..dccc6b7f128 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -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)