From: Stefan Monnier Date: Wed, 20 Jan 2021 14:52:07 +0000 (-0500) Subject: Don't let `maybe_quit` prevent resetting `consing_until_gc` (bug#43389) X-Git-Tag: emacs-28.0.90~4195 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=420661af07448857f0a17e15dc27bceeb6aff541;p=emacs.git Don't let `maybe_quit` prevent resetting `consing_until_gc` (bug#43389) * src/alloc.c (garbage_collect): Postpone `unblock_input` a bit. * src/window.c (window_parameter): Avoid `maybe_quit`. --- diff --git a/src/alloc.c b/src/alloc.c index c0a55e61b97..b86ed4ed262 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6101,11 +6101,13 @@ garbage_collect (void) gc_in_progress = 0; - unblock_input (); - consing_until_gc = gc_threshold = consing_threshold (gc_cons_threshold, Vgc_cons_percentage, 0); + /* Unblock *after* re-setting `consing_until_gc` in case `unblock_input` + signals an error (see bug#43389). */ + unblock_input (); + if (garbage_collection_messages && NILP (Vmemory_full)) { if (message_p || minibuf_level > 0) diff --git a/src/window.c b/src/window.c index e025e0b0821..eb16e2a4338 100644 --- a/src/window.c +++ b/src/window.c @@ -2260,7 +2260,7 @@ return value is a list of elements of the form (PARAMETER . VALUE). */) Lisp_Object window_parameter (struct window *w, Lisp_Object parameter) { - Lisp_Object result = Fassq (parameter, w->window_parameters); + Lisp_Object result = assq_no_quit (parameter, w->window_parameters); return CDR_SAFE (result); }