diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2018-12-01 13:40:13 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2018-12-01 13:42:57 -0800 |
commit | af914fc26db273d8788e7efa57c569f0f778d037 (patch) | |
tree | aefabbcb75779fba2437d41cdc9811acee4c1445 /src | |
parent | 317b3547820bf2468c1c0e9b5bed1bde94aeb544 (diff) | |
download | emacs-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.c | 7 |
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) |