emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-27 82c228a: Don't let `maybe_quit` prevent resetting `consing_unti


From: Stefan Monnier
Subject: emacs-27 82c228a: Don't let `maybe_quit` prevent resetting `consing_until_gc` (bug#43389)
Date: Wed, 20 Jan 2021 10:38:04 -0500 (EST)

branch: emacs-27
commit 82c228a017cfbb69ac5a91fba51419eb3b1f7032
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    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`.
    
    cherry picked from commit 420661af07448857f0a17e15dc27bceeb6aff541
---
 src/alloc.c  | 6 ++++--
 src/window.c | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/alloc.c b/src/alloc.c
index ebd99b9..4c76f4a 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 43f2a8f..f231187 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);
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]