summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/alloc.c6
-rw-r--r--src/window.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/alloc.c b/src/alloc.c
index ebd99b9f65b..4c76f4a554e 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -5987,11 +5987,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 43f2a8f00f2..f231187f7b3 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2272,7 +2272,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);
}