]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't let `maybe_quit` prevent resetting `consing_until_gc` (bug#43389)
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Jan 2021 14:52:07 +0000 (09:52 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Jan 2021 14:52:07 +0000 (09:52 -0500)
* src/alloc.c (garbage_collect): Postpone `unblock_input` a bit.
* src/window.c (window_parameter): Avoid `maybe_quit`.

src/alloc.c
src/window.c

index c0a55e61b97cbda84399f668199e6ae6bd300def..b86ed4ed26213bc934b7dba9f2c5490afa81a33c 100644 (file)
@@ -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)
index e025e0b08219b4336faaaf7e903aa370c0e3bea6..eb16e2a43389badbe8980d069955dc83780a927c 100644 (file)
@@ -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);
 }