emacs-diffs
[Top][All Lists]
Advanced

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

emacs-27 41232e6: Avoid crashes due to bidi cache being reset during red


From: Eli Zaretskii
Subject: emacs-27 41232e6: Avoid crashes due to bidi cache being reset during redisplay
Date: Sun, 31 May 2020 10:26:46 -0400 (EDT)

branch: emacs-27
commit 41232e679732fcd37fc56edda90035d6f98b591f
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Avoid crashes due to bidi cache being reset during redisplay
    
    If automatic character composition triggers GC, and
    'garbage-collection-messages' are turned on, we could have the
    bidi cache reset while processing RTL text, which would then
    consistently crash.
    * src/xdisp.c (display_echo_area_1): Protect the bidi cache
    against changes inside 'try_window'.
---
 src/xdisp.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xdisp.c b/src/xdisp.c
index bff6218..60848f4 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -11539,7 +11539,9 @@ display_echo_area_1 (ptrdiff_t a1, Lisp_Object a2)
   /* Display.  */
   clear_glyph_matrix (w->desired_matrix);
   XSETWINDOW (window, w);
+  void *itdata = bidi_shelve_cache ();
   try_window (window, start, 0);
+  bidi_unshelve_cache (itdata, false);
 
   return window_height_changed_p;
 }



reply via email to

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